2026a

# lambertw


朗博 W 函数 (又称欧米茄函数)

函数库: TyMath

# 语法

P = lambertw(x)

P = lambertw(k,x)

# 说明

P = lambertw(x) 返回 Lambert W 函数的主分支。此语法等效于 lambertw(0,x)。示例

P = lambertw(k,x) 求 Lambert W 函数的第 k 个分支。仅当 k = 0 或 k = -1 时,此语法才返回实数值。 示例

# 示例

计算 Lambert W 函数
using TyMath
A = [0 -1/exp(1); pi im]
TyMath.lambertw(A)
ans = 2×2 Matrix{ComplexF64}:
     0.0+0.0im      -1.0+0.0im
 1.07366+0.0im  0.374699+0.576413im
TyMath.lambertw(-1,A)
ans = 2×2 Matrix{ComplexF64}:
 -Inf-0.0im               -1.0-0.0im
 -0.390974-4.62811im  -1.08965-2.76636im
绘制 Lambert W 函数的两个主要分支

绘制 Lambert W 函数的两个主要分支:

using TyMath
using TyPlot
fplot(x->TyMath.lambertw(x),[-0.4,4])
hold("on")
fplot(x->TyMath.lambertw(-1,x),[-0.4,0])
hold("off")
axis([-0.5 4 -4 2])
grid("on")
title("Lambert W 函数的两个主要分支")
legend(["k = 0","k = 1"])
复平面上的 Lambert W 函数图

在复平面上绘制 Lambert W 函数的主分支。

绘制 Lambert W 函数的实部值。

using TyMath
using TyPlot
using TyBase
X, Y = meshgrid2(-100:0.1:100)
Z = TyMath.lambertw(X+im*Y)
mesh(X,Y,real(Z))
zlim([-1,3])

绘制 Lambert W 函数的虚部值。

mesh(X,Y,imag(Z))

# 输入参数

x - 输入
标量 | 向量 | 矩阵 | 多维数组

输入,指定为数字、向量、矩阵或数组。

至少一个输入参数必须是标量,或者两个参数必须是相同大小的向量或矩阵。如果一个输入参数是标量而另一个是向量或矩阵,lambertw 则将标量扩展为与另一个参数相同大小的向量或矩阵,其中所有元素都等于该标量。

k - Lambert W 函数的分支

Lambert W 函数的分支,指定为整数、整数向量、矩阵或数组。

至少一个输入参数必须是标量,或者两个参数必须是相同大小的向量或矩阵。如果一个输入参数是标量而另一个是向量或矩阵,lambertw 则将标量扩展为与另一个参数相同大小的向量或矩阵,其中所有元素都等于该标量。

# 详细信息

Lambert W 函数

Lambert W 函数 W(x) 表示 的复数解 x。

  • 对于复数 x,方程有无数个解 ,其中 k 范围涵盖所有整数;
  • 对于所有实数 ,方程只有一个实数解
  • 对于满足 的实数 x,方程正好有两个实数解。较大的解由 表示,较小的解由 表示;
  • 对于 ,方程有唯一实数解

# 参考文献

[1] Corless, R.M., G.H. Gonnet, D.E.G. Hare, D.J. Jeffrey, and D.E. Knuth. "On the Lambert W Function." Advances in Computational Mathematics, Vol. 5, pp. 329–359, 1996.

# 另请参阅

heaviside