Julia 中的多维数值积分

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

我试图找到一种方法对 y 值的值数组

phi1::Vector{Float64}
进行数值积分,输入空间由三个数组
x,y,z
给出,全部定义为
range(-1,stop=1,length=100)

我尝试使用

HCubature.jl
包,但它需要
::Function
并且我拥有的只是数组。就像有一些函数 phi(x,y,z) 我们无法解析。因此,我们有一个数组
phi
,其中
phi1[i]
存储
phi(x[i],y[i],z[i])

的值

积分必须以完全数字的方式执行,而不知道

phi1
值的来源。

julia numerical-methods numerical-integration
1个回答
3
投票

像 HCubature 这样的包旨在集成函数

f(p)
,您可以在 任意 点 p 处计算这些函数(例如,您有
f(p)
的分析表达式,或者更一般地说,某些程序可以在任意
f(p)
处计算
p
) )。这是迄今为止最有效的数值积分方法。

相反,如果您有在某些固定点集上评估的函数的数据,例如笛卡尔网格,那么通常人们会使用梯形规则等低阶方法 - 例如,您可以使用

Trapz.jl 包,它已经支持多维梯形规则。

(最好的方法取决于您的数据来自哪里。例如,如果它来自有限差分算法,则理想情况下您将使用与 FD 方法具有相同精度的积分算法。)

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