gpt4 book ai didi

julia - 利用 Julia 的集成能力

转载 作者:行者123 更新时间:2023-12-04 01:23:48 26 4
gpt4 key购买 nike

我想在我的项目中使用 Julia 的主要原因之一是它的速度,尤其是在计算积分方面。

我想在某个区间 [a,b] 上积分一维函数 f(x)。一般来说,Julia 的 quadgk 函数将是一个快速而准确的解决方案。但是,我没有函数 f(x),只有 [a,b] 中一组离散点 xi 的值 f(xi),存储在一个数组中。 xi 的间距是规则的,我可以根据自己的喜好调整间距。

天真地,我可以简单地定义一个函数 f,它使用值 f(xi) 进行插值并将其提供给 quadgk,(并使间距尽可能小),但是我不知道我的错误是什么,这很遗憾,因为 QuadGK 会告诉您它的估计错误。

另一种解决方案是自己编写一个函数来集成数组(例如使用梯形规则),但这会破坏使用 Julia 的目的......

使用 Julia 准确积分仅给定离散值的函数的最简单方法是什么?

最佳答案

由于您只有值,而不是函数本身,梯形可能是您最好的选择。 Trapz 包提供了这个 ( https://github.com/francescoalemanno/Trapz.jl )。但是,我认为值得亲眼看看自己编写一个非常好的实现是多么容易。

function trap(A)
return sum(A) - (A[begin] + A[end])/2
end

对于 1000 万个 float 的数组,这需要 2.9 毫秒。如果它们是 Int,则为 2.9 毫秒。如果它们是复数,它仍然可以工作(并且需要 8.9 毫秒)

像这样的方法是一个很好的例子,展示了在 Julia 中编写仍然完全通用的非常快速的代码是多么简单

关于julia - 利用 Julia 的集成能力,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62206869/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com