您的位置:

Lambertw函数及其应用

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