2017-02-10 58 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