scipy.special.elliprj#

scipy.special.elliprj(x, y, z, p, выход=None) = 'elliprj'>#

Симметричный эллиптический интеграл третьего рода.

Функция RJ определяется как [1]

\[R_{\mathrm{J}}(x, y, z, p) = \frac{3}{2} \int_0^{+\infty} [(t + x) (t + y) (t + z)]^{-1/2} (t + p)^{-1} dt\]

Предупреждение

Эту функцию следует считать экспериментальной, когда входные данные несбалансированы. Проверьте корректность с другой независимой реализацией.

Параметры:
x, y, z, parray_like

Вещественные или комплексные входные параметры. x, y, или z являются числами в комплексной плоскости с разрезом вдоль отрицательной вещественной оси (с дополнительными ограничениями, см. Примечания), и не более одного из них может быть нулём. p должно быть ненулевым.

выходndarray, необязательно

Необязательный выходной массив для значений функции

Возвращает:
Rскаляр или ndarray

Значение интеграла. Если все x, y, z, и p являются вещественными, возвращаемое значение вещественное. В противном случае возвращаемое значение комплексное.

Если p является вещественным и отрицательным, в то время как x, y, и z являются вещественными, неотрицательными, и не более одного из них равно нулю, возвращается главное значение Коши. [1] [2]

Смотрите также

elliprc

Вырожденный симметричный интеграл.

elliprd

Симметричный эллиптический интеграл второго рода.

elliprf

Полностью-симметричный эллиптический интеграл первого рода.

elliprg

Полностью-симметричный эллиптический интеграл второго рода.

Примечания

Код реализует алгоритм Карлсона на основе теорем дублирования и разложения в ряд до 7-го порядка. [3] Алгоритм немного отличается от своей более ранней версии, как он представлен в [1], в том, что вызов elliprc (или atan/atanh, см. [4]) больше не нужен во внутреннем цикле. Асимптотические приближения используются там, где аргументы сильно различаются по порядку величины. [5]

Входные значения подчиняются определенным достаточным, но не необходимым ограничениям, когда входные аргументы комплексные. В частности, x, y, и z должны иметь неотрицательные действительные части, если только две из них не являются неотрицательными и комплексно-сопряженными друг другу, а другая — действительным неотрицательным числом. [1] Если входные данные не удовлетворяют достаточному условию, описанному в Ref. [1] они полностью отклоняются с выводом, установленным в NaN.

В случае, когда один из x, y, и z равно p, функция elliprd следует предпочесть из-за его менее ограниченной области определения.

Добавлено в версии 1.8.0.

Ссылки

[1] (1,2,3,4,5)

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

[2]

B. C. Carlson, ed., Chapter 19 in “Digital Library of Mathematical Functions,” NIST, US Dept. of Commerce. https://dlmf.nist.gov/19.20.iii

[3]

B. C. Carlson, J. FitzSimmons, “Reduction Theorems for Elliptic Integrands with the Square Root of Two Quadratic Factors,” J. Comput. Appl. Math., vol. 118, nos. 1-2, pp. 71-85, 2000. https://doi.org/10.1016/S0377-0427(00)00282-X

[4]

F. Johansson, “Numerical Evaluation of Elliptic Functions, Elliptic Integrals and Modular Forms,” в J. Blumlein, C. Schneider, P. Paule, ред., “Elliptic Integrals, Elliptic Functions and Modular Forms in Quantum Field Theory,” стр. 269-293, 2019 (Cham, Switzerland: Springer Nature Switzerland) https://arxiv.org/abs/1806.06725 https://doi.org/10.1007/978-3-030-04480-0

[5]

B. C. Carlson, J. L. Gustafson, «Асимптотические приближения для симметричных эллиптических интегралов», SIAM J. Math. Anls., т. 25, № 2, стр. 288-303, 1994. https://arxiv.org/abs/math/9310223 https://doi.org/10.1137/S0036141092228477

Примеры

Основное свойство однородности:

>>> import numpy as np
>>> from scipy.special import elliprj
>>> x = 1.2 + 3.4j
>>> y = 5.
>>> z = 6.
>>> p = 7.
>>> scale = 0.3 - 0.4j
>>> elliprj(scale*x, scale*y, scale*z, scale*p)
(0.10834905565679157+0.19694950747103812j)
>>> elliprj(x, y, z, p)*np.power(scale, -1.5)
(0.10834905565679556+0.19694950747103854j)

Приведение к более простому эллиптическому интегралу:

>>> elliprj(x, y, z, z)
(0.08288462362195129-0.028376809745123258j)
>>> from scipy.special import elliprd
>>> elliprd(x, y, z)
(0.08288462362195136-0.028376809745123296j)

Все аргументы совпадают:

>>> elliprj(x, x, x, x)
(-0.03986825876151896-0.14051741840449586j)
>>> np.power(x, -1.5)
(-0.03986825876151894-0.14051741840449583j)