scipy.special.elliprc — SciPy v1.15.2 Manual (original) (raw)
scipy.special.elliprc(x, y, out=None) = <ufunc 'elliprc'>#
Degenerate symmetric elliptic integral.
The function RC is defined as [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)\]
Parameters:
x, yarray_like
Real or complex input parameters. x can be any number in the complex plane cut along the negative real axis. y must be non-zero.
outndarray, optional
Optional output array for the function values
Returns:
Rscalar or ndarray
Value of the integral. If y is real and negative, the Cauchy principal value is returned. If both of x and y are real, the return value is real. Otherwise, the return value is complex.
See also
Completely-symmetric elliptic integral of the first kind.
Symmetric elliptic integral of the second kind.
Completely-symmetric elliptic integral of the second kind.
Symmetric elliptic integral of the third kind.
Notes
RC is a degenerate case of the symmetric integral RF: elliprc(x, y) == elliprf(x, y, y)
. It is an elementary function rather than an elliptic integral.
The code implements Carlson’s algorithm based on the duplication theorems and series expansion up to the 7th order. [2]
Added in version 1.8.0.
References
Examples
Basic homogeneity property:
import numpy as np from scipy.special import elliprc
x = 1.2 + 3.4j y = 5. scale = 0.3 + 0.4j elliprc(scalex, scaley) (0.5484493976710874-0.4169557678995833j)
elliprc(x, y)/np.sqrt(scale) (0.5484493976710874-0.41695576789958333j)
When the two arguments coincide, the integral is particularly simple:
x = 1.2 + 3.4j elliprc(x, x) (0.4299173120614631-0.3041729818745595j)
1/np.sqrt(x) (0.4299173120614631-0.30417298187455954j)
Another simple case: the first argument vanishes:
y = 1.2 + 3.4j elliprc(0, y) (0.6753125346116815-0.47779380263880866j)
np.pi/2/np.sqrt(y) (0.6753125346116815-0.4777938026388088j)
When x and y are both positive, we can express\(R_C(x,y)\) in terms of more elementary functions. For the case \(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
And for the case \(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