我想在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"的情况下解决这个问题。
答案 0 :(得分:3)
您的功能未在y
中进行矢量化,integrate
需要矢量化功能。
x=c(1:100)
f= Vectorize(function(y) sum(x^y), "y")
integrate(f,0,1)
#1226.54 with absolute error < 1.4e-11