scipy.special.ellipe#
- scipy.special.ellipe(m, out=None) = <ufunc 'ellipe'>#
第二类完全椭圆积分
此函数定义为
\[E(m) = \int_0^{\pi/2} [1 - m \sin(t)^2]^{1/2} dt\]- 参数:
- marray_like
定义椭圆积分的参数。
- outndarray, optional
函数值的可选输出数组
- 返回:
- Escalar or ndarray
椭圆积分的值。
另请参阅
注释
Cephes [1] 例程 ellpe 的封装。
对于
m > 0
,计算使用以下近似值:\[E(m) \approx P(1-m) - (1-m) \log(1-m) Q(1-m),\]其中 \(P\) 和 \(Q\) 是十阶多项式。对于
m < 0
,以下关系\[E(m) = E(m/(m - 1)) \sqrt(1-m)\]被使用。
参数 \(m\) 的参数化遵循 [2] 中第 17.2 节的定义。也使用其他参数化形式,例如互补参数 \(1 - m\)、模角 \(\sin^2(\alpha) = m\) 或模数 \(k^2 = m\),因此请注意选择正确的参数。
勒让德 E 积分与卡尔森对称 R_D 或 R_G 函数以多种方式相关 [3]。例如,
\[E(m) = 2 R_G(0, 1-k^2, 1) .\]参考文献
[1]Cephes 数学函数库, http://www.netlib.org/cephes/
[2]Milton Abramowitz 和 Irene A. Stegun,编。数学函数手册(含公式、图表和数学表格)。纽约: Dover, 1972。
[3]NIST 数学函数数字图书馆。 http://dlmf.nist.gov/, 2020-09-15 版本 1.0.28。参见第 19.25(i) 节 https://dlmf.nist.gov/19.25#i
示例
此函数用于计算半长轴为 a、半短轴为 b 的椭圆周长。
>>> import numpy as np >>> from scipy import special
>>> a = 3.5 >>> b = 2.1 >>> e_sq = 1.0 - b**2/a**2 # eccentricity squared
周长可通过以下方式计算:
>>> C = 4*a*special.ellipe(e_sq) # circumference formula >>> C 17.868899204378693
当 a 和 b 相等时(即离心率为 0),这会简化为圆的周长。
>>> 4*a*special.ellipe(0.0) # formula for ellipse with a = b 21.991148575128552 >>> 2*np.pi*a # formula for circle of radius a 21.991148575128552