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)