【发布时间】:2014-09-07 18:46:33
【问题描述】:
我知道我之前问过同样的问题,但由于我在这里很新,所以这个问题被问得很糟糕而且无法重现。因此,我尝试在这里做得更好。 (如果我只编辑旧的可能没人会读它)
我有这个双积分想要积分:Here is a picture
ff<-function(g,t) exp((16)*g)*exp(-8*t-(-t-0.01458757)^2/(0.0001126501))
integrate(Vectorize(function(t) integrate(function(g)
ff(g,t), -2.5,0)$value), -2, 2)
在 R 中运行它会给我错误:
the integral is probably divergent
当我尝试在 Wolfram 中运行 sam 函数时,它给了我一个合适的值:(我不得不切换 g=x 和 t=y)
链接:
如您所见,它得到了一个有限的结果,有人可以帮我吗?
我在定义的区域上绘制了函数,但找不到奇点问题。见:
library('Plot3D')
x <- seq(-2.5,0, by = 0.01) #to see the peak change to: seq(-0.2,0, by = 0.001)
y <- seq(-2,2, by = 0.01) #"": seq(-0.1,0.1, by = 0.001)
grid <- mesh(x,y)
z <- with(grid,exp((16)*x)*
exp(-8*y-(-0.013615734-y-0.001+0.5*0.007505^2*1)^2/(2*0.007505^2)))
persp3D(z = z, x = x, y = y)
感谢您的帮助,我希望问题的结构比旧问题更好。
【问题讨论】:
-
感谢您发现错字。第一个(在图片上)实际上是正确的,所以我仍然在 R 中得到错误,但在 Wolfram @mod 中没有,如果你能链接新图片,我将不胜感激
-
感谢修改!第二个链接有效(整个复制过去),但我无法正确格式化它。
-
不是答案,但您可以尝试不同的集成算法。
pracma::quad2d(ff, -2.5, 0, -2, 2, n=400). -
integrate(Vectorize(function(t) integrate(function(g) ff(g,t), -2.5,0)$value), -2, 1.99)似乎有效。只是不喜欢以2结束。 -
有趣的是,您可以忽略错误并仍然获得值:
r<-integrate(Vectorize(function(t) integrate(function(g) ff(g,t), -2.5,0)$value), -2, 2, stop.on.error=FALSE); r$value
标签: r integral integrate wolframalpha