是否存在处理双积分的R函数,其中内部积分的区域是外部变量的函数?也就是说,当f(x)从-5到5积分时,g(y)在0到h(x)上积分。
谢谢, JD
答案 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)
的外积分,你可能必须编写自己的正交(不是一件难事)。