2026a
# lambertw
朗博 W 函数 (又称欧米茄函数)
函数库: TyMath
# 语法
# 说明
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,方程有无数个解
,其中 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.