QuadGKを使って数値積分する。

関数を渡して数値積分を計算する。
出力は (I, E) となり、 I が結果、 E が誤差。
一つの変数についての積分しかできないので注意。
体感速度だと、SymPyでintegrateするよりもはやい(そもそもSymPyのRecompileが遅い)。

using QuadGK

# quadgk: 数値積分を計算する
# quadgk(function, from, to)
quadgk(cos, 0, pi/2) # => (1.0, 2.220446049250313e-16)
quadgk(x -> x^2, 0, 1) # => (0.3333333333333333, 5.551115123125783e-17)
quadgk(x -> exp(-4 * abs(x - 1/2)), 0, 1) # => (0.4323323583816937, 4.996003610813204e-16)

参考

github.com juliamath.github.io

http://mth229.github.io/integration.html#Thequadgkfunction