一、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; }