special._ellip_harm

Module Contents

Functions

ellip_harm(h2,k2,n,p,s,signm=1,signn=1) r
ellip_harm_2(h2,k2,n,p,s) r
_ellip_normal_vec(h2,k2,n,p)
ellip_normal(h2,k2,n,p) r
ellip_harm(h2, k2, n, p, s, signm=1, signn=1)

r Ellipsoidal harmonic functions E^p_n(l)

These are also known as Lame functions of the first kind, and are solutions to the Lame equation:

where and is the eigenvalue (not returned) corresponding to the solutions.

h2 : float
h**2
k2 : float
k**2; should be larger than h**2
n : int
Degree
s : float
Coordinate
p : int
Order, can range between [1,2n+1]
signm : {1, -1}, optional
Sign of prefactor of functions. Can be +/-1. See Notes.
signn : {1, -1}, optional
Sign of prefactor of functions. Can be +/-1. See Notes.
E : float
the harmonic

ellip_harm_2, ellip_normal

The geometric intepretation of the ellipsoidal functions is explained in [2], [3], [4]. The signm and signn arguments control the sign of prefactors for functions according to their type:

K : +1
L : signm
M : signn
N : signm*signn

New in version 0.15.0.

[1]Digital Libary of Mathematical Functions 29.12 http://dlmf.nist.gov/29.12
[2]Bardhan and Knepley, “Computational science and re-discovery: open-source implementations of ellipsoidal harmonics for problems in potential theory”, Comput. Sci. Disc. 5, 014006 (2012) :doi:`10.1088/1749-4699/5/1/014006`.
[3]David J.and Dechambre P, “Computation of Ellipsoidal Gravity Field Harmonics for small solar system bodies” pp. 30-36, 2000
[4]George Dassios, “Ellipsoidal Harmonics: Theory and Applications” pp. 418, 2012
>>> from scipy.special import ellip_harm
>>> w = ellip_harm(5,8,1,1,2.5)
>>> w
2.5

Check that the functions indeed are solutions to the Lame equation:

>>> 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)
ellip_harm_2(h2, k2, n, p, s)

r Ellipsoidal harmonic functions F^p_n(l)

These are also known as Lame functions of the second kind, and are solutions to the Lame equation:

where and is the eigenvalue (not returned) corresponding to the solutions.

h2 : float
h**2
k2 : float
k**2; should be larger than h**2
n : int
Degree.
p : int
Order, can range between [1,2n+1].
s : float
Coordinate
F : float
The harmonic

Lame functions of the second kind are related to the functions of the first kind:

New in version 0.15.0.

ellip_harm, ellip_normal

>>> from scipy.special import ellip_harm_2
>>> w = ellip_harm_2(5,8,2,1,10)
>>> w
0.00108056853382
_ellip_normal_vec(h2, k2, n, p)
ellip_normal(h2, k2, n, p)

r Ellipsoidal harmonic normalization constants gamma^p_n

The normalization constant is defined as

h2 : float
h**2
k2 : float
k**2; should be larger than h**2
n : int
Degree.
p : int
Order, can range between [1,2n+1].
gamma : float
The normalization constant

ellip_harm, ellip_harm_2

New in version 0.15.0.

>>> from scipy.special import ellip_normal
>>> w = ellip_normal(5,8,3,7)
>>> w
1723.38796997