Julia HCubature.jl 限制取决于其他变量

问题描述 投票:0回答:1

我想用 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

如何计算这样的积分?也许使用另一个包?如果是这样,哪个包以及如何执行此操作?

提前谢谢您:)

julia integration
1个回答
0
投票

这是一个迭代积分。

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,因此答案是合理的。

© www.soinside.com 2019 - 2024. All rights reserved.