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
定义椭圆积分的参数。
- 出ndarray,可选
函数值的可选输出数组
- 返回:
- E标量或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\),因此请确保选择正确的参数。
Legendre E 积分与 Carlson 的对称 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