Scipy:ellipk和ellipkm1之间的差异

时间:2014-05-19 18:26:03

标签: python scipy

我想知道scipy特殊模块中函数ellipk和ellipkm1之间有什么区别。

通过文档我们了解到,ellk计算第一种椭圆积分,而且ellkm1计算相同但参数大约为1。

然后我绘制了下图,请参阅here

最后,我没有看到我们必须使用椭圆形而不是椭圆形。

有人有答案吗?

感谢。

1 个答案:

答案 0 :(得分:1)

数学上,ellipkm1(x)相当于ellipk(1-x)ellipkm1用于以非常接近1的值计算函数。例如,假设您要在ellipk评估x = 1 - 1e-30。实际上,你不能,因为双精度浮点数1 - 1e-30等于1,所以ellipkm(1 - 1e-30)将返回inf。相反,请在ellipkm1评估1e-30

以下是1 - 1e-30评估积分的演示。

In [30]: eps = 1e-30

In [31]: 1 - eps  # eps is smaller than 1 ULP, so 1-eps == 1.
Out[31]: 1.0

In [32]: ellipk(1 - eps)  # Of course, this gives inf.
Out[32]: inf

In [33]: ellipkm1(eps)  # This is the value we want.
Out[33]: 35.925070756030571