當前位置: 首頁>>編程示例 >>用法及示例精選 >>正文


Python SciPy special.wrightomega用法及代碼示例

本文簡要介紹 python 語言中 scipy.special.wrightomega 的用法。

用法:

scipy.special.wrightomega(z, out=None) = <ufunc 'wrightomega'>#

萊特歐米茄函數。

定義為解

其中 是複對數的主分支。

參數

z array_like

評估賴特歐米茄函數的點

out ndarray,可選

函數值的可選輸出數組

返回

omega 標量或 ndarray

賴特歐米茄函數的值

注意

該函數也可以定義為

其中 是展開數, 是Lambert W 函數。

這裏的實現取自[1]。

參考

[1]

Lawrence、Corless 和 Jeffrey,“算法 917:Wright 函數的複雜雙精度求值。” ACM 數學軟件匯刊,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)

相關用法


注:本文由純淨天空篩選整理自scipy.org大神的英文原創作品 scipy.special.wrightomega。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。