一、Lambertw函數介紹
Lambertw函數是解析方程$x=e^{x}$的特殊函數,定義為函數$w$,使得$w(x)e^{w(x)}=x$,即$w(x)=W(x)$。它在複平面上有多個分支,主分支是指$w(x)\in[-1,\infty)$,主分支上還有一個特殊點$lambertw(0)=0$。其它分支是指$w(x)\in(-\infty,-1]$,這些分支從主分支上$lambertw(-1/e)$點處開始。 $lambertw(z)$被廣泛應用,如在統計物理學、統計學、計算複雜度理論、高維函數等領域
二、與exp函數matlab的關係
Lambertw函數與exp函數調和,因為$exp(w(x))=x$,所以$w(x)$是$exp(x)$的反函數。
MATLAB中exp函數也可以用$lambertw$函數實現,在MATLAB中對於非常龐大的數,exp函數計算將會非常慢而lambertw函數卻不會。在MATLAB中,$lambertw(z)$是唯一給出實數(除了$z = -\infty$)的解的複函數。關於MATLAB代碼示例如下:
syms z; w = lambertw(z)
三、數學LambertW函數
Lambertw函數被廣泛應用於數學領域。
(1)$lambertw(x)=\sum_{n=1}^{\infty}\frac{(-n)^{n-1}}{n!}x^{n},x\in [-1/e,\infty)$
(2)$lambertw_0(x)=\frac{\ln x}{W(x)}$,$x\in(0,\infty)$,其中$W(x)$是LambertW函數的主分支。
(3)$lambertw_{-1}(x)=\frac{\ln x}{W(x)}$,$x\in[-1/e,0)$,其中$W(x)$是LambertW函數的-1分支
(4)在投資經濟學中,LambertW函數用於計算貼現函數。
四、LambertW函數與Lambert函數的關係
當$x\geq-\frac{1}{e}$時,定義它的主支為$W_{0}(x)$。另外還有個,$W_{-1}(x)\leqslant W_{0}(x)$。
Lambert函數(Lambert function)被定義為此方程的任意解:$x=a\cdot e^{a}$
Lambert函數的特殊值$W_0(1)=0$。
syms z; w = lambertw(1)
五、LambertW函數的求導
LambertW函數的求導可以參考以下公式
(1)$\frac{dLambertW(x)}{dx}=\frac{LambertW(x)}{x(1+LambertW(x))}$
(2)$\frac{d^{n}LambertW(x)}{dx^{n}} = \frac{\sum_{k=n-1}^{\infty}(-1)^{k-n+1}k(k-1)…(k-n+2)x^{k-n+1}}{(LambertW(x)+1)^{n+1}x}$
六、示例代碼
以下是一個計算LambertW函數值的示例代碼:
double lambertw(double x,double eps = 1e-7) { double w=0.0,ew=exp(w),w1; int n=0; while(1) { w1=w*(w+1.0/(n+1.0))*pow(ew-x/ew,-1.0/(n+1.0)); if(fabs(w1-w)1000) break; } return w; }
原創文章,作者:AGQWJ,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/318022.html