如何在 Julia 中进行两个变量数值积分?

Pee*_*oot 5 julia

我可以在 Julia 中使用quadgk. 一些简单的例子:

julia> f(x) = cos(x)
f (generic function with 1 method)

julia> quadgk(f, 0, pi)
(8.326672684688674e-17,0.0)

julia> quadgk(f, 0, pi/2)
(1.0,1.1102230246251565e-16)

julia> g(x) = cos(x)^2
g (generic function with 1 method)

julia> quadgk(g, 0, pi/2)
(0.7853981633974483,0.0)

julia> pi/4
0.7853981633974483
Run Code Online (Sandbox Code Playgroud)

quadgk文档似乎并不暗示对多维积分的支持,如果我试图将其误用于 2D 积分,肯定会出现错误:

julia> quadgk( h, 0, pi/2, 0, pi/2)
ERROR: `h` has no method matching h(::Float64)
Run Code Online (Sandbox Code Playgroud)

文档确实建议有一些用于集成的外部包,但没有命名它们。我猜一个这样的包可以做二维积分。这项任务的最佳此类包是什么?

Ste*_*ski 5

我想你会想看看 Cubat 包:

https://github.com/stevengj/Cubature.jl

可以说,quadgk应该简单地从标准库中删除,因为它是有限的,并且只会误导人们不寻找包来进行集成。