ellip_harm#
- scipy.special.ellip_harm(h2, k2, n, p, s, signm=1, signn=1)[Quelle]#
Ellipsoidale harmonische Funktionen E^p_n(l)
Diese sind auch als Lame-Funktionen der ersten Art bekannt und sind Lösungen der Lame-Gleichung
\[(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\]wobei \(q = (n+1)n\) und \(a\) der Eigenwert (nicht zurückgegeben) ist, der den Lösungen entspricht.
- Parameter:
- h2float
h**2- k2float
k**2; sollte größer sein alsh**2- nint
Grad
- sfloat
Koordinate
- pint
Ordnung, kann zwischen [1,2n+1] liegen
- signm{1, -1}, optional
Vorzeichen des Vorfaktors von Funktionen. Kann +/-1 sein. Siehe Hinweise.
- signn{1, -1}, optional
Vorzeichen des Vorfaktors von Funktionen. Kann +/-1 sein. Siehe Hinweise.
- Rückgabe:
- Efloat
die harmonische \(E^p_n(s)\)
Siehe auch
Hinweise
Die geometrische Interpretation der ellipsoidalen Funktionen wird in [2], [3], [4] erklärt. Die Argumente signm und signn steuern das Vorzeichen der Vorfaktoren für Funktionen entsprechend ihrem Typ.
K : +1 L : signm M : signn N : signm*signn
Hinzugefügt in Version 0.15.0.
Referenzen
[1]Digital Library of Mathematical Functions 29.12 https://dlmf.nist.gov/29.12
[2]Bardhan und 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. und Dechambre P., „Computation of Ellipsoidal Gravity Field Harmonics for small solar system bodies“ S. 30-36, 2000
[4]George Dassios, „Ellipsoidal Harmonics: Theory and Applications“ S. 418, 2012
Beispiele
>>> from scipy.special import ellip_harm >>> w = ellip_harm(5,8,1,1,2.5) >>> w 2.5
Überprüfen Sie, ob die Funktionen tatsächlich Lösungen der Lame-Gleichung sind.
>>> import numpy as np >>> 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)