R,与功能边界成双重积分

时间:2015-04-14 04:11:46

标签: r integral boundary

是否存在处理双积分的R函数,其中内部积分的区域是外部变量的函数?也就是说,当f(x)从-5到5积分时,g(y)在0到h(x)上积分。

谢谢, JD

2 个答案:

答案 0 :(得分:2)

请参阅 pracma 包中的函数integral2,该函数完全符合您的要求。以下是帮助页面中的一个示例:

##  Compute the volume of a sphere
f <- function(x, y) sqrt(1 -x^2 - y^2)
xmin <- 0; xmax <- 1
ymin <- 0; ymax <- function(x) sqrt(1 - x^2)
I <- integral2(f, xmin, xmax, ymin, ymax)
I$Q                             # 0.5236076 - pi/6 => 8.800354e-06

其中一个限制ymax是一个函数,而其他限制是常量,但也可以是函数。

答案 1 :(得分:1)

您可以使用adaptIntegrate库中的cubature功能。我将假设您的函数是f(x, y) = x + y

library(cubature)
fun <- function(x) x[1] + x[2]
adaptIntegrate(fun, c(0, 10), c(-5, 5), tol=1e-8)

从0到10整合y,然后从-5到5整合x

请注意,adaptIntegrate 似乎接受函数作为整数边界。因此,如果你想要从0到h(x)的外积分,你可能必须编写自己的正交(不是一件难事)。