我想编写一个代码来解决这种方程式:
为此,我编写了下面的代码,但它没有解决问题。你对在R中解决这种积分的可能性有任何想法吗?
t_0 = 15
mu = 0.1
lambda = 0.8
f = function(x1,x2) exp(mu*(x1+x2))*dexp(log(lambda)*(x1+x2))
f_comp = function(x2) f(x1,x2)
f_1 = function(x1) {integrate(f_comp,upper = t_0, lower = x1)}
result = integrate(f = f_1, lower = 0, upper = t_0)$value
---------编辑:
鉴于下面的答案,我将代码改编为我的示例,但我仍然认为不正确,至少积分的值0没有意义。
integrate(function(x1) {
sapply(x1, function(x1){
integrate(function(x2) exp(mu*(x1+x2))*dexp(log(lambda)*(x1+x2)), lower = x1, upper = t_0)$value
})
}, 0, t_0)
顺便说一句,我想为此制定一般程序(这就是为什么我不用手计算积分)。这不仅是双积分,而且是n元组积分,所以我需要一个通用的程序来进行这种计算。
答案 0 :(得分:0)
对集成领域进行描述。这是具有顶点(0,0),(0,t0),(t0,t0)的单纯形(三角形)。要评估单纯形上的整数,可以使用SimplicialCubature
包。
t0 = 15
mu = 0.1
lambda = 0.8
library(SimplicialCubature)
f <- function(xy){
x <- xy[1]; y <- xy[2]
exp(-mu*(x+y)) * (1-exp(-lambda*(x+y)))
}
S <- cbind(c(0,0), c(0,t0), c(t0,t0))
adaptIntegrateSimplex(f, S)$integral
# 29.55906
integrate(function(x1) {
sapply(x1, function(x1){
integrate(function(x2) exp(-mu*(x1+x2))*(1-exp(-lambda*(x1+x2))), lower = x1,
upper = t0)$value
})
}, 0, t0)$value
# 29.55906