我试图在R中积分0到无穷大和0到x为界的二重积分。但是,adaptIntegrate()
不能以函数为界,integral2也不能以无穷大为界。是否有其他函数可以在这些特定的界上积分?
下面是adaptIntegrate的代码:
f <- function(x){exp((-(1/2)*x[1] - (1/3)*x[2]))}
adaptIntegrate(f, lowerLimit = c(0,0), upperLimit = c(Inf,x)
同样对于积分2:
xmin <- 0; xmax <- 1
ymin <- 0; ymax <- function(x) sqrt(1 - x^2)
I <- integral2(f, xmin, xmax, ymin, ymax)
1条答案
按热度按时间ocebsuys1#
可以嵌套两个
integrate
来计算二重积分,外部的部分函数对内部的部分函数积分。由于integrate
将f
求值为向量化函数,因此需要另一个嵌套在sapply
中的函数来向量化integrate
本身,计算每个整点(并设置上界)。这回答你的问题了吗?
你也可以使用
Vectorize
代替sapply来达到同样的目的,并且不需要嵌套在sapply中的函数-同样的方法用于任意嵌套积分。
创建于2023年1月6日,使用reprex v2.0.2