我想用 Hcubature 计算二重积分,但其中一个变量的限制取决于另一个。例如:
我已经尝试过原始:
using HCubature
F(x, y) = x+y
hcubature(r->F(r[1], r[2]), [0,0], [r[2], 1])
当然它不起作用并给出错误:
ERROR: LoadError: UndefVarError: r not defined
如何计算这样的积分?也许使用另一个包?如果是这样,哪个包以及如何执行此操作?
提前谢谢您:)
这是一个迭代积分。
hcubature
可用于从内到外计算积分,如下所示:
julia> F(x, y) = x+y
F (generic function with 1 method)
julia> hcubature(r->hcubature(s->F(s[1],r[1]), [0], [r[1]])[1], [0], [1])
(0.4999999999999999, 1.1102230246251565e-16)
所以答案是
0.5
。如果语义不清楚,则积分是在三角形 (0,0)-(1,0)-(1,1) 上。该三角形上的函数范围为 0 到 2,因此答案是合理的。