scipy.special.ellip_harm¶
- scipy.special.ellip_harm(h2, k2, n, p, s, signm=1, signn=1)[源代码]¶
椭球调和函数E^p_n(L)
这些函数也称为第一类Lame函数,它们是Lame方程的解:
\[(s^2-h^2)(s^2-k^2)E‘’(S)+s(2s^2-h^2-k^2)E‘(S)+(a-q s^2)E(S)=0\]哪里 \(q = (n+1)n\) 和 \(a\) 是与解对应的特征值(不返回)。
- 参数
- h2浮动
h**2
- k2浮动
k**2
; should be larger thanh**2
- n集成
学位
- s浮动
坐标
- p集成
订单,范围可以在 [1,2n+1]
- signm{1,-1},可选
函数前因式的符号。可以是+/-1。请参见注释。
- signn{1,-1},可选
函数前因式的符号。可以是+/-1。请参见注释。
- 退货
- E浮动
调和 \(E^p_n(s)\)
注意事项
中解释了椭球函数的几何解释。 [2], [3], [4]. 这个 signm 和 signn 参数根据函数的类型控制其前置因子的符号::
K : +1 L : signm M : signn N : signm*signn
0.15.0 新版功能.
参考文献
- 1
数学函数数字类库29.12 https://dlmf.nist.gov/29.12
- 2
Bardhan和Knepley,“计算科学和再发现:位势理论中问题的椭球谐波的开源实现”,计算机。SCI。光盘。5,014006(2012年) DOI:10.1088/1749-4699/5/1/014006 。
- 3
David J.和Dechambre P,“小太阳系天体椭球重力场谐波的计算”,第30-36页,2000
- 4
乔治·达西奥斯,“椭球谐波:理论与应用”,第418页,2012年。
示例
>>> from scipy.special import ellip_harm >>> w = ellip_harm(5,8,1,1,2.5) >>> w 2.5
检查函数是否确实是Lame方程的解:
>>> from scipy.interpolate import UnivariateSpline >>> def eigenvalue(f, df, ddf): ... r = ((s**2 - h**2)*(s**2 - k**2)*ddf + s*(2*s**2 - h**2 - k**2)*df - n*(n+1)*s**2*f)/f ... return -r.mean(), r.std() >>> s = np.linspace(0.1, 10, 200) >>> k, h, n, p = 8.0, 2.2, 3, 2 >>> E = ellip_harm(h**2, k**2, n, p, s) >>> E_spl = UnivariateSpline(s, E) >>> a, a_err = eigenvalue(E_spl(s), E_spl(s,1), E_spl(s,2)) >>> a, a_err (583.44366156701483, 6.4580890640310646e-11)