scipy.special.elliprc#
- scipy.special.elliprc(x, y, out=None) = <ufunc 'elliprc'>#
Degeneriertes symmetrisches elliptisches Integral.
Die Funktion RC ist definiert als [1]
\[R_{\mathrm{C}}(x, y) = \frac{1}{2} \int_0^{+\infty} (t + x)^{-1/2} (t + y)^{-1} dt = R_{\mathrm{F}}(x, y, y)\]- Parameter:
- x, yarray_like
Reale oder komplexe Eingabeparameter. x kann jede Zahl in der komplexen Ebene sein, die entlang der negativen reellen Achse geschnitten ist. y darf nicht Null sein.
- outndarray, optional
Optionales Ausgabe-Array für die Funktionswerte
- Rückgabe:
- RSkalar oder ndarray
Wert des Integrals. Wenn y reell und negativ ist, wird der Cauchy-Hauptwert zurückgegeben. Wenn sowohl x als auch y reell sind, ist der Rückgabewert reell. Andernfalls ist der Rückgabewert komplex.
Siehe auch
Hinweise
RC ist ein degenerierter Fall des symmetrischen Integrals RF:
elliprc(x, y) == elliprf(x, y, y). Es handelt sich eher um eine elementare Funktion als um ein elliptisches Integral.Der Code implementiert den Algorithmus von Carlson, der auf den Duplikationstheoremen und Reihenentwicklungen bis zur 7. Ordnung basiert. [2]
Hinzugefügt in Version 1.8.0.
Referenzen
[1]B. C. Carlson, hrsg., Kapitel 19 in „Digital Library of Mathematical Functions“, NIST, US Dept. of Commerce. https://dlmf.nist.gov/19.16.E6
[2]B. C. Carlson, „Numerical computation of real or complex elliptic integrals“, Numer. Algorithm, Bd. 10, Nr. 1, S. 13–26, 1995. https://arxiv.org/abs/math/9409227 https://doi.org/10.1007/BF02198293
Beispiele
Grundlegende Homogenitätseigenschaft
>>> import numpy as np >>> from scipy.special import elliprc
>>> x = 1.2 + 3.4j >>> y = 5. >>> scale = 0.3 + 0.4j >>> elliprc(scale*x, scale*y) (0.5484493976710874-0.4169557678995833j)
>>> elliprc(x, y)/np.sqrt(scale) (0.5484493976710874-0.41695576789958333j)
Wenn die beiden Argumente zusammenfallen, ist das Integral besonders einfach
>>> x = 1.2 + 3.4j >>> elliprc(x, x) (0.4299173120614631-0.3041729818745595j)
>>> 1/np.sqrt(x) (0.4299173120614631-0.30417298187455954j)
Ein weiterer einfacher Fall: das erste Argument verschwindet
>>> y = 1.2 + 3.4j >>> elliprc(0, y) (0.6753125346116815-0.47779380263880866j)
>>> np.pi/2/np.sqrt(y) (0.6753125346116815-0.4777938026388088j)
Wenn x und y beide positiv sind, können wir \(R_C(x,y)\) durch elementarere Funktionen ausdrücken. Für den Fall \(0 \le x < y\),
>>> x = 3.2 >>> y = 6. >>> elliprc(x, y) 0.44942991498453444
>>> np.arctan(np.sqrt((y-x)/x))/np.sqrt(y-x) 0.44942991498453433
Und für den Fall \(0 \le y < x\),
>>> x = 6. >>> y = 3.2 >>> elliprc(x,y) 0.4989837501576147
>>> np.log((np.sqrt(x)+np.sqrt(x-y))/np.sqrt(y))/np.sqrt(x-y) 0.49898375015761476