scipy.special.wrightomega#

scipy.special.wrightomega(z, выход=None) = 'wrightomega'>#

Функция Омега Райта.

Определяется как решение

\[\omega + \log(\omega) = z\]

где \(\log\) является главной ветвью комплексного логарифма.

Параметры:
zarray_like

Точки, в которых вычисляется функция Райта Омега

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

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

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

Значения функции Райта Омега

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

lambertw

Функция Ламберта W

Примечания

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

Функция также может быть определена как

\[\omega(z) = W_{K(z)}(e^z)\]

где \(K(z) = \lceil (\Im(z) - \pi)/(2\pi) \rceil\) является раскручивающим числом и \(W\) является функцией Ламберта W.

Реализация здесь взята из [1].

Ссылки

[1]

Lawrence, Corless, и Jeffrey, «Algorithm 917: Complex Double-Precision Evaluation of the Wright \(\omega\) Функция.” ACM Transactions on Mathematical Software, 2012. DOI:10.1145/2168773.2168779.

Примеры

>>> import numpy as np
>>> from scipy.special import wrightomega, lambertw
>>> wrightomega([-2, -1, 0, 1, 2])
array([0.12002824, 0.27846454, 0.56714329, 1.        , 1.5571456 ])

Комплексный ввод:

>>> wrightomega(3 + 5j)
(1.5804428632097158+3.8213626783287937j)

Проверить, что wrightomega(z) удовлетворяет w + log(w) = z:

>>> w = -5 + 4j
>>> wrightomega(w + np.log(w))
(-5+4j)

Проверить подключение к lambertw:

>>> z = 0.5 + 3j
>>> wrightomega(z)
(0.0966015889280649+1.4937828458191993j)
>>> lambertw(np.exp(z))
(0.09660158892806493+1.4937828458191993j)
>>> z = 0.5 + 4j
>>> wrightomega(z)
(-0.3362123489037213+2.282986001579032j)
>>> lambertw(np.exp(z), k=1)
(-0.33621234890372115+2.282986001579032j)