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
实数或复数输入参数。(scipy.special.elliprf),(scipy.special.elliprf) 或 (scipy.special.elliprf) 可以是复平面上沿负实轴切开的任意数字,但其中最多只能有一个为零。
- outndarray,可选
函数值的可选输出数组
- 返回:
- R标量或 ndarray
积分的值。如果所有 (scipy.special.elliprf),(scipy.special.elliprf) 和 (scipy.special.elliprf) 均为实数,则返回值为实数。否则,返回值将为复数。
请参阅
注释
该代码基于重复定理和 7 阶序列展开(参阅:https://dlmf.nist.gov/19.36.i)实现了 Carlson 算法,并对完整积分使用了 AGM 算法。 [2]
版本 1.8.0 中新增。
参考资料
[1]B. C. Carlson 编辑,NIST,美国商务部“数学函数数字图书馆”中的第 19 章。 https://dlmf.nist.gov/19.16.E1
[2]B. C. Carlson,“实椭圆积分或复椭圆积分的数值计算”,Numer. Algorithm,第 10 卷,第 1 期,第 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)
所谓的“第一个 lemniscate 常量”
>>> elliprf(0, 1, 2) 1.3110287771460598
>>> from scipy.special import gamma >>> gamma(0.25)**2/(4*np.sqrt(2*np.pi)) 1.3110287771460598