如何使用GSL计算涉及复合体的椭圆积分?

时间:2013-11-20 11:57:41

标签: gsl

我需要计算

∫ [x₁ to x₂] 1/√(1-k² sinh²(x)) dx

在我的程序中。这可以使用 complex 参数中评估的第一类不完全椭圆积分表示:

-i (F(ix₂ | -k²) - F(ix₁ | -k²)).

我发现GSL提供了椭圆积分F,但它似乎没有为复合体过载。是否有一些扩展可用于此或我可以使用的其他库?

1 个答案:

答案 0 :(得分:3)

好的,这是一个匆忙的问题。但如果将来有人可能对此感兴趣,也许自我回答会有所帮助。

看看GSL的源代码,我发现F(φ,k)被减少(只要φ∈[-π,π])到

sin(φ) RF(1-sin²(φ), 1-k²sin²(φ), 1),

其中RF是另一个GSL功能。没有F(iφ,k)但我们可以安全地插入上面的纯虚构φ,因为所有三个参数都保持真实:

sin(iφ) = i sinh(φ)
=>
F(iφ,k) = sin(iφ) RF(1+sinh²(φ), 1+k²sinh²(φ), 1)
=>
-i F(iφ | -k^2) = sinh(φ) RF(1+sinh²(φ), 1-k²sinh²(φ), 1)