如何在由R中网格点处的函数值给定的任意区域上执行2D数值积分



我想用数字计算形式为的积分

$$int_D f(x,y)dx dy$$

其中$D$是$R^2$中的区域,$f(x,y)$是从$R^2$到$R$的映射。

我有一个网格覆盖$R^2$的子集。从这个网格中,对于我的特定应用程序,我根据$f(x,y)$的值选择特定的区域$D$(不一定是矩形的,而是简单连接的)(例如,我选择$f(x,y)<5美元)。

然后,我想在这个选定的区域上集成函数。存在许多用于矩形区域上的二维积分的函数,并且一些已经被实现用于单形上的积分。在我看来,在更普遍的地区,似乎不存在可供整合的地方。实现黎曼和的一个版本似乎并不太复杂,但在任何地方都没有见过。

有人知道吗?

您可以对二变量使用integral函数。

假设您有一个函数f(x, y) = xy/2,并且您想将该函数与0<x<100<y<x集成,我们有:

integrate(Vectorize(function(x,y)integrate(function(y)0.5*x*y, 0, x)[[1]]), 0, 10)
625 with absolute error < 6.9e-12

这正是您手动获得的价值

最新更新