2017-02-10 56 views
0

我想在R中解决$$\int_{0}^{1}\sum_{x=1}^{100}x^y\,dy$$我使用以下代码。如何计算以下表达式

x=c(1:100) 
f=function(y) sum(x^y) 
integrate(f,0,1) 

但我得到这个错误信息:

错误集成(F,0,1)的功能 评价给了错误的长度 的结果,另外:警告消息: 在x^y:较长的对象长度不是较短对象长度的倍数。

如何解决这个问题,而不使用“for”。

回答

3

您的功能未在yintegrate中进行矢量化,需要矢量化函数。

x=c(1:100) 

f= Vectorize(function(y) sum(x^y), "y") 

integrate(f,0,1) 
#1226.54 with absolute error < 1.4e-11