R中的二重积分

R中的二重积分,r,integral,numerical-integration,R,Integral,Numerical Integration,我想知道如何对R中的二重积分进行编码。我已经提到了两个类似的问题 但我仍然困惑于如何从这些答案中得到我的问题。我的问题如下 我想用R来编码这个计算 通过我的手工和Wolfram alpha计算,它变成了16826.4。如果两个积分都来自精确的数字,我知道如何使用adaptIntegrate()进行积分。但我不知道我该怎么办。你们能帮帮我吗?提前非常感谢。让我从代码开始,然后逐步解释它 InnerFunc = function(x) { x + 0.805 } InnerIntegral =

我想知道如何对R中的二重积分进行编码。我已经提到了两个类似的问题

但我仍然困惑于如何从这些答案中得到我的问题。我的问题如下

我想用R来编码这个计算


通过我的手工和Wolfram alpha计算,它变成了16826.4。如果两个积分都来自精确的数字,我知道如何使用adaptIntegrate()进行积分。但我不知道我该怎么办。你们能帮帮我吗?提前非常感谢。

让我从代码开始,然后逐步解释它

InnerFunc = function(x) { x + 0.805 }
InnerIntegral = function(y) { sapply(y, 
    function(z) { integrate(InnerFunc, 15, z)$value }) }
integrate(InnerIntegral , 15, 50)
16826.4 with absolute error < 1.9e-10

积分域是具有顶点(15,15)、(50,15)和(15,50)的单纯形。使用
SimplicalCubature
软件包:

> library(SimplicialCubature)
> S = cbind(c(15,15),c(50,15),c(15,50))
> adaptIntegrateSimplex(function(v) v[1]+0.805, S)
$integral
[1] 16826.4

$estAbsError
[1] 1.68264e-08

当我画要积分的区域时,我观察带有顶点的单纯形 (15,15), (15,50), (50,50). 这与三角形的面积相同。所以积分
应该是一样的。请重新检查顶点。如果我错了,请解释。

谢谢你的评论。是的,这只是一个例子。我真正想要的二重积分函数更复杂。我想用分析的方法来计算是不容易的。非常感谢@G5W的详细解释。成功了@马特,我看见你的眼睛了。你能回答我的评论吗?你想计算什么样的三重积分?问题是如何编写代码来计算所描述形式的积分。你能用代码解释一下你是怎么计算那个积分的吗?
> library(SimplicialCubature)
> S = cbind(c(15,15),c(50,15),c(15,50))
> adaptIntegrateSimplex(function(v) v[1]+0.805, S)
$integral
[1] 16826.4

$estAbsError
[1] 1.68264e-08