scipy.special.elliprd#

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

第二种椭圆对称积分。

函数 RD 定义为 [1]

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

实数或复数输入参数。xy 可以是复平面中沿着负实轴切开的任意数,但最多只有一个可以为零,而 z 必须是非零。

outndarray,可选

可选项输出阵列用于函数值

返回::
R标量或 ndarray

积分的值。如果 x, yz 全部为实数,返回值为实数。否则,返回值为复数。

参阅

elliprc

简并对称椭圆积分。

elliprf

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

elliprg

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

elliprj

第三类对称椭圆积分。

RD 是椭圆积分 RJ 的退化情况: elliprd(x, y, z) == elliprj(x, y, z, z)

此代码基于复制定理和高达 7 阶的级数展开来实现 Carlson 算法。 [2]

在版本 1.8.0 中增加。

参考

[1]

B. C. Carlson 编辑,“数学函数数字库”第 19 章,NIST,美国商务部。https://dlmf.nist.gov/19.16.E5

[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 elliprd
>>> x = 1.2 + 3.4j
>>> y = 5.
>>> z = 6.
>>> scale = 0.3 + 0.4j
>>> elliprd(scale*x, scale*y, scale*z)
(-0.03703043835680379-0.24500934665683802j)
>>> elliprd(x, y, z)*np.power(scale, -1.5)
(-0.0370304383568038-0.24500934665683805j)

所有三个参数都相符

>>> x = 1.2 + 3.4j
>>> elliprd(x, x, x)
(-0.03986825876151896-0.14051741840449586j)
>>> np.power(x, -1.5)
(-0.03986825876151894-0.14051741840449583j)

所谓的“第二个勒让德常数”

>>> elliprd(0, 2, 1)/3
0.5990701173677961
>>> from scipy.special import gamma
>>> gamma(0.75)**2/np.sqrt(2*np.pi)
0.5990701173677959