scipy.special.elliprf#
-
scipy.special.elliprf(x, y, z, выход=None) =
'elliprf'> # Полностью-симметричный эллиптический интеграл первого рода.
Функция RF определена как [1]
\[R_{\mathrm{F}}(x, y, z) = \frac{1}{2} \int_0^{+\infty} [(t + x) (t + y) (t + z)]^{-1/2} dt\]- Параметры:
- x, y, zarray_like
Вещественные или комплексные входные параметры. x, y, или z может быть любым числом в комплексной плоскости с разрезом вдоль отрицательной вещественной оси, но не более одного из них может быть нулевым.
- выходndarray, необязательно
Необязательный выходной массив для значений функции
- Возвращает:
- Rскаляр или ndarray
Значение интеграла. Если все x, y, и z действительные, возвращаемое значение действительно. Иначе возвращаемое значение комплексное.
Смотрите также
Примечания
Код реализует алгоритм Карлсона на основе теорем дублирования и разложения в ряд до 7-го порядка (см.: https://dlmf.nist.gov/19.36.i) и алгоритм AGM для полного интеграла. [2]
Добавлено в версии 1.8.0.
Ссылки
[1]B. C. Carlson, ed., Chapter 19 in “Digital Library of Mathematical Functions,” NIST, US Dept. of Commerce. https://dlmf.nist.gov/19.16.E1
[2]B. C. Carlson, "Numerical computation of real or complex elliptic integrals," Numer. Algorithm, vol. 10, no. 1, pp. 13-26, 1995. https://arxiv.org/abs/math/9409227 https://doi.org/10.1007/BF02198293
Примеры
Основное свойство однородности:
>>> import numpy as np >>> from scipy.special import elliprf
>>> x = 1.2 + 3.4j >>> y = 5. >>> z = 6. >>> scale = 0.3 + 0.4j >>> elliprf(scale*x, scale*y, scale*z) (0.5328051227278146-0.4008623567957094j)
>>> elliprf(x, y, z)/np.sqrt(scale) (0.5328051227278147-0.4008623567957095j)
Все три аргумента совпадают:
>>> x = 1.2 + 3.4j >>> elliprf(x, x, x) (0.42991731206146316-0.30417298187455954j)
>>> 1/np.sqrt(x) (0.4299173120614631-0.30417298187455954j)
Так называемая 'первая лемнискатная константа':
>>> elliprf(0, 1, 2) 1.3110287771460598
>>> from scipy.special import gamma >>> gamma(0.25)**2/(4*np.sqrt(2*np.pi)) 1.3110287771460598