scipy.special.elliprf#

scipy.special.elliprf(x, y, z, out=None) = <ufunc 'elliprf'>#

第一类完全对称椭圆积分。

函数 RF 定义如下 [1]

\[R_{\mathrm{F}}(x, y, z) = \frac{1}{2} \int_0^{+\infty} [(t + x) (t + y) (t + z)]^{-1/2} dt\]
参数:
x, y, zarray_like

实数或复数输入参数。 x, y, 或 z 可以是复平面上的任意数字,但最多只有一个可以为零。

outndarray, optional

可选的输出数组,用于存储函数值

返回:
Rscalar or ndarray

积分值。 如果 x, yz 都是实数,则返回值是实数。 否则,返回值是复数。

另请参阅

elliprc

退化的对称积分。

elliprd

第二类对称椭圆积分。

elliprg

第二类完全对称椭圆积分。

elliprj

第三类对称椭圆积分。

附注

该代码实现了卡尔森算法,该算法基于重复定理和最高 7 阶的级数展开(参考:https://dlmf.nist.gov/19.36.i)以及完全积分的 AGM 算法。 [2]

在版本 1.8.0 中新增。

参考文献

[1]

B. C. Carlson, ed., Chapter 19 in “Digital Library of Mathematical Functions,” NIST, US Dept. of Commerce. https://dlmf.nist.gov/19.16.E1

[2]

B. C. Carlson, “Numerical computation of real or complex elliptic integrals,” Numer. Algorithm, vol. 10, no. 1, pp. 13-26, 1995. https://arxiv.org/abs/math/9409227 https://doi.org/10.1007/BF02198293

示例

基本齐次性质

>>> import numpy as np
>>> from scipy.special import elliprf
>>> x = 1.2 + 3.4j
>>> y = 5.
>>> z = 6.
>>> scale = 0.3 + 0.4j
>>> elliprf(scale*x, scale*y, scale*z)
(0.5328051227278146-0.4008623567957094j)
>>> elliprf(x, y, z)/np.sqrt(scale)
(0.5328051227278147-0.4008623567957095j)

所有三个参数相等

>>> x = 1.2 + 3.4j
>>> elliprf(x, x, x)
(0.42991731206146316-0.30417298187455954j)
>>> 1/np.sqrt(x)
(0.4299173120614631-0.30417298187455954j)

所谓的“第一个勒马尼斯科常数”

>>> elliprf(0, 1, 2)
1.3110287771460598
>>> from scipy.special import gamma
>>> gamma(0.25)**2/(4*np.sqrt(2*np.pi))
1.3110287771460598