在Julia中有没有任何积分函数来计算一些指数函数?

时间:2018-03-08 07:40:59

标签: julia

我想创建一个期望值(续)。因此,我需要制作一个有无限限制的积分。

例如:

integrate(exp(2*x+1),-Inf:Inf)

我怎么能达到这样的目的?

3 个答案:

答案 0 :(得分:2)

朱莉娅有几个包允许你这样做。例如,您可以使用Cubature.jl。它要求您通过change of variables将无限区间转换为有限区间。

这是一个例子(我使用的函数不是你示例中的函数,因为你的原始积分是不同的):

using Cubature
f(x) = exp(-x^2)
res = hquadrature(y -> f(y/(1-y^2))*(1+y^2)/((1-y^2)^2), -1, 1)

您现在可以检查我们是否接近f选择的正确结果:

julia> res[1] - sqrt(pi)
2.220446049250313e-16

答案 1 :(得分:1)

QuadGK.jl自动更改变量,因此您可以直接为它提供(1D)无限积分。

答案 2 :(得分:1)

我最喜欢的数字集成包是FastGaussQuadrature.jl:

https://github.com/ajt60gaibb/FastGaussQuadrature.jl

只是分享另一个包以供将来参考。