Lambert W function

Revision as of 13:26, 25 May 2025 by imported>RankASea (→‎growthexperiments-addlink-summary-summary:3|0|0)
(diff) ← Previous revision | Latest revision (diff) | Newer revision → (diff)

Template:Short description Template:Use American English

File:Mplwp lambert W branches.svg
The graph of Template:Math for real Template:Math and Template:Math. The upper branch (blue) with Template:Math is the graph of the function Template:Math (principal branch), the lower branch (magenta) with Template:Math is the graph of the function Template:Math. The minimum value of Template:Math is at Template:Math

In mathematics, the Lambert Template:Mvar function, also called the omega function or product logarithm,<ref> Template:Citation</ref> is a multivalued function, namely the branches of the converse relation of the function Template:Math, where Template:Mvar is any complex number and Template:Math is the exponential function. The function is named after Johann Lambert, who considered a related problem in 1758. Building on Lambert's work, Leonhard Euler described the Template:Mvar function per se in 1783.Template:Citation needed

For each integer Template:Math there is one branch, denoted by Template:Math, which is a complex-valued function of one complex argument. Template:Math is known as the principal branch. These functions have the following property: if Template:Math and Template:Math are any complex numbers, then

<math>w e^{w} = z</math>

holds if and only if

<math>w=W_k(z) \ \ \text{ for some integer } k.</math>

When dealing with real numbers only, the two branches Template:Math and Template:Math suffice: for real numbers Template:Math and Template:Math the equation

<math>y e^{y} = x</math>

can be solved for Template:Math only if Template:Math; yields Template:Math if Template:Math and the two values Template:Math and Template:Math if Template:Math.

The Lambert Template:Mvar function's branches cannot be expressed in terms of elementary functions.<ref> Template:Citation.</ref> It is useful in combinatorics, for instance, in the enumeration of trees. It can be used to solve various equations involving exponentials (e.g. the maxima of the Planck, Bose–Einstein, and Fermi–Dirac distributions) and also occurs in the solution of delay differential equations, such as Template:Math. In biochemistry, and in particular enzyme kinetics, an opened-form solution for the time-course kinetics analysis of Michaelis–Menten kinetics is described in terms of the Lambert Template:Mvar function.

File:Cplot Lambert W.png
Main branch of the Lambert Template:Mvar function in the complex plane, plotted with domain coloring. Note the branch cut along the negative real axis, ending at Template:Math.
File:Lambert-modulus-HSV.png
The modulus of the principal branch of the Lambert Template:Mvar function, colored according to Template:Math

TerminologyEdit

The notation convention chosen here (with Template:Math and Template:Math) follows the canonical reference on the Lambert Template:Mvar function by Corless, Gonnet, Hare, Jeffrey and Knuth.<ref name="Corless"> Template:Cite journal</ref>

The name "product logarithm" can be understood as follows: since the inverse function of Template:Math is termed the logarithm, it makes sense to call the inverse "function" of the product Template:Math the "product logarithm". (Technical note: like the complex logarithm, it is multivalued and thus W is described as a converse relation rather than inverse function.) It is related to the omega constant, which is equal to Template:Math.

HistoryEdit

Lambert first considered the related Lambert's Transcendental Equation in 1758,<ref>Lambert J. H., "Observationes variae in mathesin puram", Acta Helveticae physico-mathematico-anatomico-botanico-medica, Band III, 128–168, 1758.</ref> which led to an article by Leonhard Euler in 1783<ref>Euler, L. "De serie Lambertina Plurimisque eius insignibus proprietatibus". Acta Acad. Scient. Petropol. 2, 29–51, 1783. Reprinted in Euler, L. Opera Omnia, Series Prima, Vol. 6: Commentationes Algebraicae. Leipzig, Germany: Teubner, pp. 350–369, 1921.</ref> that discussed the special case of Template:Math.

The equation Lambert considered was

<math>x = x^m + q.</math>

Euler transformed this equation into the form

<math>x^a - x^b = (a - b) c x^{a + b}.</math>

Both authors derived a series solution for their equations.

Once Euler had solved this equation, he considered the case Template:Tmath. Taking limits, he derived the equation

<math>\ln x = c x^a.</math>

He then put Template:Tmath and obtained a convergent series solution for the resulting equation, expressing Template:Tmath in terms of Template:Tmath.

After taking derivatives with respect to Template:Tmath and some manipulation, the standard form of the Lambert function is obtained.

In 1993, it was reported that the Lambert Template:Tmath function provides an exact solution to the quantum-mechanical double-well Dirac delta function model for equal charges<ref>Template:Cite journal</ref>—a fundamental problem in physics. Prompted by this, Rob Corless and developers of the Maple computer algebra system realized that "the Lambert W function has been widely used in many fields, but because of differing notation and the absence of a standard name, awareness of the function was not as high as it should have been."<ref name = "Corless" /><ref name="corless_maple">Template:Cite journal</ref>

Another example where this function is found is in Michaelis–Menten kinetics.<ref>Template:Cite book</ref>

Although it was widely believed that the Lambert Template:Tmath function cannot be expressed in terms of elementary (Liouvillian) functions, the first published proof did not appear until 2008.<ref>Template:Cite journal</ref>

Elementary properties, branches and rangeEdit

File:Lambert W Range.pdf
The range of the Template:Mvar function, showing all branches. The black curves (including the real axis) form the image of the real axis, the orange curves are the image of the imaginary axis. The purple curve and circle are the image of a small circle around the point Template:Math; the red curves are the image of a small circle around the point Template:Math.
File:Imaginary part of the Lambert W(n,x+i y) for various branches (n).jpg
Plot of the imaginary part of Template:Math for branches Template:Math. The plot is similar to that of the multivalued complex logarithm function except that the spacing between sheets is not constant and the connection of the principal sheet is different

There are countably many branches of the Template:Mvar function, denoted by Template:Math, for integer Template:Mvar; Template:Math being the main (or principal) branch. Template:Math is defined for all complex numbers z while Template:Math with Template:Math is defined for all non-zero z. With Template:Math and Template:Math for all Template:Math.

The branch point for the principal branch is at Template:Math, with a branch cut that extends to Template:Math along the negative real axis. This branch cut separates the principal branch from the two branches Template:Math and Template:Math. In all branches Template:Math with Template:Math, there is a branch point at Template:Math and a branch cut along the entire negative real axis.

The functions Template:Math are all injective and their ranges are disjoint. The range of the entire multivalued function Template:Mvar is the complex plane. The image of the real axis is the union of the real axis and the quadratrix of Hippias, the parametric curve Template:Math.

InverseEdit

File:InvertW.jpg
Regions of the complex plane for which Template:Math, where Template:Math. The darker boundaries of a particular region are included in the lighter region of the same color. The point at Template:Math is included in both the Template:Math (blue) region and the Template:Math (gray) region. Horizontal grid lines are in multiples of Template:Math.

The range plot above also delineates the regions in the complex plane where the simple inverse relationship Template:Tmath is true. Template:Tmath implies that there exists an Template:Tmath such that Template:Tmath, where Template:Tmath depends upon the value of Template:Tmath. The value of the integer Template:Tmath changes abruptly when Template:Tmath is at the branch cut of Template:Tmath, which means that Template:TmathTemplate:Math, except for Template:Tmath where it is Template:Tmath Template:MathTemplate:Tmath.

Defining Template:Tmath, where Template:Tmath and Template:Tmath are real, and expressing Template:Tmath in polar coordinates, it is seen that

<math>

\begin{align}

ze^z &= (x + iy) e^{x} (\cos y + i \sin y) \\
      &= e^{x} (x \cos y - y \sin y) + i e^{x} (x \sin y + y \cos y) \\

\end{align} </math>

For <math>n \neq 0</math>, the branch cut for Template:Tmath is the non-positive real axis, so that

<math>x \sin y + y \cos y = 0 \Rightarrow x = -y/\tan(y),</math>

and

<math>(x \cos y - y \sin y) e^x \leq 0.</math>

For <math>n = 0</math>, the branch cut for Template:Tmath is the real axis with <math>-\infty < z \leq -1/e</math>, so that the inequality becomes

<math>(x \cos y - y \sin y) e^x \leq -1/e.</math>

Inside the regions bounded by the above, there are no discontinuous changes in Template:Tmath, and those regions specify where the Template:Tmath function is simply invertible, i.e. Template:Tmath.

CalculusEdit

DerivativeEdit

By implicit differentiation, one can show that all branches of Template:Mvar satisfy the differential equation

<math>z(1 + W) \frac{dW}{dz} = W \quad \text{for } z \neq -\frac{1}{e}.</math>

(Template:Mvar is not differentiable for Template:Math.) As a consequence, that gets the following formula for the derivative of W:

<math>\frac{dW}{dz} = \frac{W(z)}{z(1 + W(z))} \quad \text{for } z \not\in \left\{0, -\frac{1}{e}\right\}.</math>

Using the identity Template:Math, gives the following equivalent formula:

<math>\frac{dW}{dz} = \frac{1}{z + e^{W(z)}} \quad \text{for } z \neq -\frac{1}{e}.</math>

At the origin we have

<math>W'_0(0)=1.</math>

The n-th derivative of Template:Mvar is of the form:

<math>\frac{d^{n}W}{dz^{n}} = \frac{P_{n}(W(z))}{(z + e^{W(z)})^{n}(W(z) + 1)^{n - 1}} \quad \text{for } n > 0,\, z \ne -\frac{1}{e}.</math>

Where Template:Math is a polynomial function with coefficients defined in A042977. If and only if Template:Mvar is a root of Template:Math then Template:Math is a root of the n-th derivative of Template:Mvar.

Taking the derivative of the n-th derivative of Template:Mvar yields:

<math>\frac{d^{n + 1}W}{dz^{n + 1}} = \frac{(W(z) + 1)P_{n}'(W(z)) + (1 - 3n - nW(z))P_{n}(W(z))}{(n + e^{W(z)})^{n + 1}(W(z) + 1)^{n}} \quad \text{for } n > 0,\, z \ne -\frac{1}{e}.</math>

Inductively proving the n-th derivative equation.

IntegralEdit

The function Template:Math, and many other expressions involving Template:Math, can be integrated using the substitution Template:Math, i.e. Template:Math:

<math> \begin{align}

\int W(x)\,dx &= x W(x) - x + e^{W(x)} + C\\ & = x \left( W(x) - 1 + \frac{1}{W(x)} \right) + C. \end{align}</math> (The last equation is more common in the literature but is undefined at Template:Math). One consequence of this (using the fact that Template:Math) is the identity

<math>\int_{0}^{e} W_0(x)\,dx = e - 1.</math>

Asymptotic expansionsEdit

The Taylor series of Template:Math around 0 can be found using the Lagrange inversion theorem and is given by

<math>W_0(x)=\sum_{n=1}^\infty \frac{(-n)^{n-1}}{n!}x^n =x-x^2+\tfrac{3}{2}x^3-\tfrac{16}{6}x^4+\tfrac{125}{24}x^5-\cdots.</math>

The radius of convergence is Template:Math, as may be seen by the ratio test. The function defined by this series can be extended to a holomorphic function defined on all complex numbers with a branch cut along the interval Template:Open-closed; this holomorphic function defines the principal branch of the Lambert Template:Mvar function.

For large values of Template:Mvar, Template:Math is asymptotic to

<math>\begin{align}

W_0(x) &= L_1 - L_2 + \frac{L_2}{L_1} + \frac{L_2\left(-2 + L_2\right)}{2L_1^2} + \frac{L_2\left(6 - 9L_2 + 2L_2^2\right)}{6L_1^3} + \frac{L_2\left(-12 + 36L_2 - 22L_2^2 + 3L_2^3\right)}{12L_1^4} + \cdots \\[5pt] &= L_1 - L_2 + \sum_{l=0}^\infty \sum_{m=1}^\infty \frac{(-1)^l \left[ \begin{smallmatrix} l + m \\ l + 1 \end{smallmatrix} \right]}{m!} L_1^{-l-m} L_2^m, \end{align}</math> where Template:Math, Template:Math, and Template:Math is a non-negative Stirling number of the first kind.<ref name = "Corless" /> Keeping only the first two terms of the expansion,

<math>W_0(x) = \ln x - \ln \ln x + \mathcal{o}(1).</math>

The other real branch, Template:Math, defined in the interval Template:Closed-open, has an approximation of the same form as Template:Mvar approaches zero, with in this case Template:Math and Template:Math.<ref name = "Corless" />

Integer and complex powersEdit

Integer powers of Template:Math also admit simple Taylor (or Laurent) series expansions at zero:

<math>

W_0(x)^2 = \sum_{n=2}^\infty \frac{-2\left(-n\right)^{n-3}}{(n - 2)!} x^n = x^2 - 2x^3 + 4x^4 - \tfrac{25}{3}x^5 + 18x^6 - \cdots. </math>

More generally, for Template:Math, the Lagrange inversion formula gives

<math>

W_0(x)^r = \sum_{n=r}^\infty \frac{-r\left(-n\right)^{n - r - 1}}{(n - r)!} x^n, </math> which is, in general, a Laurent series of order Template:Mvar. Equivalently, the latter can be written in the form of a Taylor expansion of powers of Template:Math:

<math>

\left(\frac{W_0(x)}{x}\right)^r = e^{-r W_0(x)} = \sum_{n=0}^\infty \frac{r\left(n + r\right)^{n - 1}}{n!} \left(-x\right)^n, </math> which holds for any Template:Math and Template:Math.

Bounds and inequalitiesEdit

A number of non-asymptotic bounds are known for the Lambert function.

Hoorfar and Hassani<ref>A. Hoorfar, M. Hassani, Inequalities on the Lambert W Function and Hyperpower Function, JIPAM, Theorem 2.7, page 7, volume 9, issue 2, article 51. 2008.</ref> showed that the following bound holds for Template:Math:

<math>\ln x -\ln \ln x + \frac{\ln \ln x}{2\ln x} \le W_0(x) \le \ln x - \ln\ln x + \frac{e}{e - 1} \frac{\ln \ln x}{\ln x}.</math>

They also showed the general bound

<math>W_0(x) \le \ln\left(\frac{x+y}{1+\ln(y)}\right),</math>

for every <math>y>1/e</math> and <math>x\ge-1/e</math>, with equality only for <math>x = y \ln(y)</math>. The bound allows many other bounds to be made, such as taking <math>y=x+1</math> which gives the bound

<math>W_0(x) \le \ln\left(\frac{2x+1}{1+\ln(x+1)}\right).</math>

In 2013 it was proven<ref name = "Chatzigeorgiou"> Template:Cite journal</ref> that the branch Template:Math can be bounded as follows:

<math>-1 - \sqrt{2u} - u < W_{-1}\left(-e^{-u-1}\right) < -1 - \sqrt{2u} - \tfrac{2}{3}u \quad \text{for } u > 0.</math>

Roberto Iacono and John P. Boyd<ref name="doi.org">Template:Cite journal</ref> enhanced the bounds as follows:

<math>\ln \left(\frac{x}{\ln x}\right) -\frac{\ln \left(\frac{x}{\ln x}\right)}{1+\ln \left(\frac{x}{\ln x}\right)} \ln \left(1-\frac{\ln \ln x}{\ln x}\right) \le W_0(x) \le \ln \left(\frac{x}{\ln x}\right) - \ln \left(\left(1-\frac{\ln \ln x}{\ln x}\right)\left(1-\frac{\ln\left(1-\frac{\ln \ln x}{\ln x}\right)}{1+\ln \left(\frac{x}{\ln x}\right)}\right)\right).</math>

IdentitiesEdit

File:Plot of Lambert W function of x exp x.svg
A plot of Template:Math where blue is for Template:Math and red is for Template:Math. The diagonal line represents the intervals where Template:Math.

A few identities follow from the definition:

<math>\begin{align}

W_0(x e^x) &= x & \text{for } x &\geq -1,\\ W_{-1}(x e^x) &= x & \text{for } x &\leq -1. \end{align}</math> Note that, since Template:Math is not injective, it does not always hold that Template:Math, much like with the inverse trigonometric functions. For fixed Template:Math and Template:Math, the equation Template:Math has two real solutions in Template:Mvar, one of which is of course Template:Math. Then, for Template:Math and Template:Math, as well as for Template:Math and Template:Math, Template:Math is the other solution.

Some other identities:<ref>{{#invoke:citation/CS1|citation |CitationClass=web }}</ref>

<math>

\begin{align} & W(x)e^{W(x)} = x, \quad\text{therefore:}\\[5pt] & e^{W(x)} = \frac{x}{W(x)}, \qquad e^{-W(x)} = \frac{W(x)}{x}, \qquad e^{n W(x)} = \left(\frac{x}{W(x)}\right)^n. \end{align} </math>

<math>\ln W_0(x) = \ln x - W_0(x) \quad \text{for } x > 0.</math><ref>{{#invoke:citation/CS1|citation

|CitationClass=web }}</ref>

<math>W_0\left(x \ln x\right) = \ln x \quad\text{and}\quad e^{W_0\left(x \ln x\right)} = x \quad \text{for } \frac1e \leq x . </math>
<math>W_{-1}\left(x \ln x\right) = \ln x \quad\text{and}\quad e^{W_{-1}\left(x \ln x\right)} = x \quad \text{for } 0 < x \leq \frac1e . </math>
<math>

\begin{align} & W(x) = \ln \frac{x}{W(x)} &&\text{for } x \geq -\frac1e, \\[5pt] & W\left( \frac{nx^n}{W\left(x\right)^{n-1}} \right) = n W(x) &&\text{for } n, x > 0 \end{align} </math>

(which can be extended to other Template:Mvar and Template:Mvar if the correct branch is chosen).
<math>W(x) + W(y) = W\left(x y \left(\frac{1}{W(x)} + \frac{1}{W(y)}\right)\right) \quad \text{for } x, y > 0.</math>

Substituting Template:Math in the definition:<ref>https://isa-afp.org/entries/Lambert_W.html Note: although one of the assumptions of the relevant lemma states that x must be > 1/e, inspection of said lemma reveals that this assumption is unused. The lower bound is in fact x > 0. The reason for the branch switch at e is simple: for x > 1 there are always two solutions, −ln x and another one that you'd get from the x on the other side of e that would feed the same value to W; these must crossover at x = e: [1] Wn cannot distinguish a value of ln x/x from an x < e from the same value from the other x > e, so it cannot flip the order of its return values.</ref>

<math>\begin{align}

W_0\left(-\frac{\ln x}{x}\right) &= -\ln x &\text{for } 0 &< x \leq e,\\[5pt] W_{-1}\left(-\frac{\ln x}{x}\right) &= -\ln x &\text{for } x &> e. \end{align}</math>

With Euler's iterated exponential Template:Math:

<math>\begin{align}h(x) & = e^{-W(-\ln x)}\\
& = \frac{W(-\ln x)}{-\ln x} \quad \text{for } x \neq 1.

\end{align}</math>

Special valuesEdit

The following are special values of the principal branch: <math display=block>W_0\left(-\frac{\pi}{2}\right) = \frac{i\pi}{2}</math> <math display=block>W_0\left(-\frac{1}{e}\right) = -1</math> <math display=block>W_0\left(2 \ln 2 \right) = \ln 2</math> <math display=block>W_0\left(x \ln x \right) = \ln x \quad \left(x \geqslant \tfrac{1}{e} \approx 0.36788\right)</math> <math display=block>W_0\left(x^{x+1} \ln x \right) = x \ln x \quad \left(x > 0\right)</math> <math display=block>W_0(0) = 0</math>

<math>W_0(1) = \Omega = \left(\int_{-\infty}^{\infty} \frac{dt}{\left(e^t-t\right)^2 + \pi^2}\right)^{\!-1}\!\!\!\!-\,1\approx 0.56714329 \quad</math> (the omega constant)

<math display=block>W_0(1) = e^{-W_0(1)} = \ln\frac{1}{W_0(1)} = -\ln W_0(1)</math> <math display=block>W_0(e) = 1</math> <math display=block>W_0\left(e^{1+e}\right) = e</math> <math display=block>W_0\left(\frac{\sqrt{e}}{2}\right) = \frac{1}{2}</math> <math display=block>W_0\left(\frac{\sqrt[n]{e}}{n}\right) = \frac{1}{n}</math> <math display=block>W_0(-1) \approx -0.31813+1.33723i</math>

Special values of the branch Template:Math: <math display=block>W_{-1}\left(-\frac{\ln 2}{2}\right) = -\ln 4</math>

RepresentationsEdit

The principal branch of the Lambert function can be represented by a proper integral, due to Poisson:<ref name = "Finch">Template:Cite book</ref>

<math>-\frac{\pi}{2}W_0(-x)=\int_0^\pi\frac{\sin\left(\tfrac32 t\right)-xe^{\cos t}\sin\left(\tfrac52 t-\sin t\right)}{1-2xe^{\cos t}\cos(t-\sin t)+x^2e^{2\cos t}}\sin\left(\tfrac12 t\right)\,dt \quad \text{for } |x| < \frac1{e}.

</math>

Another representation of the principal branch was found by Kalugin–Jeffrey–Corless:<ref> Template:Cite journal See Theorem 3.4, p. 821 of published version (p. 5 of preprint).</ref>

<math>W_0(x)=\frac{1}{\pi}\int_0^\pi\ln\left(1+x\frac{\sin t}{t}e^{t\cot t}\right)dt.</math>

The following continued fraction representation also holds for the principal branch:<ref name = "Dubinov"> Template:Cite book</ref>

<math>

W_0(x) = \cfrac{x}{1+\cfrac{x}{1+\cfrac{x}{2+\cfrac{5x}{3+\cfrac{17x}{10+\cfrac{133x}{17+\cfrac{1927x}{190+\cfrac{13582711x}{94423+\ddots}}}}}}}}. </math> Also, if Template:Math:<ref>Template:Cite book</ref>

<math>W_0(x) = \cfrac{x}{\exp \cfrac{x}{\exp \cfrac{x}{\ddots}}}.</math>

In turn, if Template:Math, then

<math>W_0(x) = \ln \cfrac{x}{\ln \cfrac{x}{\ln \cfrac{x}{\ddots}}}.</math>

Other formulasEdit

Definite integralsEdit

There are several useful definite integral formulas involving the principal branch of the Template:Mvar function, including the following:

<math>\begin{align}

& \int_0^\pi W_0\left( 2\cot^2x \right)\sec^2 x\,dx = 4\sqrt{\pi}, \\[5pt] & \int_0^\infty \frac{W_0(x)}{x\sqrt{x}}\,dx = 2\sqrt{2\pi}, \\[5pt] & \int_0^\infty W_0\left(\frac{1}{x^2}\right)\,dx = \sqrt{2\pi}, \text{ and more generally}\\[5pt] & \int_0^\infty W_0\left(\frac{1}{x^N}\right)\,dx = N^{1-\frac1N} \Gamma\left(1-\frac1N\right)\qquad \text{for }N > 0 \end{align}</math> where <math>\Gamma</math> denotes the gamma function.

The first identity can be found by writing the Gaussian integral in polar coordinates.

The second identity can be derived by making the substitution Template:Math, which gives

<math>\begin{align}

x & =ue^u, \\[5pt] \frac{dx}{du} & =(u+1)e^u. \end{align}</math>

Thus

<math>\begin{align}

\int_0^\infty \frac{W_0(x)}{x\sqrt{x}}\,dx &=\int_0^\infty \frac{u}{ue^{u}\sqrt{ue^{u}}}(u+1)e^u \, du \\[5pt] &=\int_0^\infty \frac{u+1}{\sqrt{ue^u}}du \\[5pt] &=\int_0^\infty \frac{u+1}{\sqrt{u}}\frac{1}{\sqrt{e^u}}du\\[5pt] &=\int_0^\infty u^\tfrac12 e^{-\frac{u}{2}}du+\int_0^\infty u^{-\tfrac12} e^{-\frac{u}{2}}du\\[5pt] &=2\int_0^\infty (2w)^\tfrac12 e^{-w} \, dw+2\int_0^\infty (2w)^{-\tfrac12} e^{-w} \, dw && \quad (u =2w) \\[5pt] &=2\sqrt{2}\int_0^\infty w^\tfrac12 e^{-w} \, dw + \sqrt{2} \int_0^\infty w^{-\tfrac12} e^{-w} \, dw \\[5pt] &=2\sqrt{2} \cdot \Gamma \left (\tfrac32 \right )+\sqrt{2} \cdot \Gamma \left (\tfrac12 \right ) \\[5pt] &=2\sqrt{2} \left (\tfrac12\sqrt{\pi} \right )+\sqrt{2}\left(\sqrt{\pi}\right) \\[5pt] &=2\sqrt{2\pi}. \end{align}</math>

The third identity may be derived from the second by making the substitution Template:Math and the first can also be derived from the third by the substitution Template:Math. Deriving its generalization, the fourth identity, is only slightly more involved and can be done by substituting, in turn, <math>u = x^{\frac1N}</math>, <math>t = W_0(u)</math>, and <math>z = \frac tN</math>, observing that one obtains two integrals matching the definition of the gamma function, and finally using the properties of the gamma function to collect terms and simplify.

Except for Template:Mvar along the branch cut Template:Open-closed (where the integral does not converge), the principal branch of the Lambert Template:Mvar function can be computed by the following integral:<ref>{{#invoke:citation/CS1|citation |CitationClass=web }}</ref>

<math>\begin{align}

W_0(z)&=\frac{z}{2\pi}\int_{-\pi}^\pi\frac{\left(1-\nu\cot\nu\right)^2+\nu^2}{z+\nu\csc\left(\nu\right) e^{-\nu\cot\nu}} \, d\nu \\[5pt] &= \frac{z}{\pi} \int_0^\pi \frac{\left(1-\nu\cot\nu\right)^2+\nu^2}{z + \nu \csc\left(\nu\right) e^{-\nu\cot\nu}} \, d\nu, \end{align}</math> where the two integral expressions are equivalent due to the symmetry of the integrand.

Indefinite integralsEdit

<math display="block">\int \frac{ W(x) }{x} \, dx \; = \; \frac{ W(x)^2}{2} + W(x) + C </math> Template:Math proof }{ \cancel{\color{OliveGreen}{u}} \cancel{\color{BrickRed}{e^u}} }\left(u+1\right)\cancel{\color{BrickRed}{e^u}} \, du </math>

<math>\int \frac{ W(x) }{x} \, dx \; = \; \int (u+1) \, du </math>
<math>\int \frac{ W(x) }{x} \, dx \; = \; \frac{u^2}{2} + u + C </math>
<math> u= W(x) </math>
<math>\int \frac{ W(x) }{x} \, dx \; = \; \frac{ W(x) ^2}{2} + W(x) + C </math>

}} Template:Math proof \left( u+1 \right) \cancel{\color{OliveGreen}{ e^u }} \, du </math>

<math>\int \frac{ W(x) }{x} \, dx \; = \; \int (u+1) \, du </math>

<math>\int \frac{ W(x) }{x} \, dx \; = \; \frac{u^2}{2} + u + C </math>

<math> u= W(x) </math>

<math>\int \frac{ W(x) }{x} \, dx \; = \; \frac{ W(x) ^2}{2} + W(x) + C </math> }}

<math display="block">\int W\left(A e^{Bx}\right) \, dx \; = \; \frac{ W\left(A e^{Bx}\right) ^2}{2B} + \frac{ W\left(A e^{Bx}\right) }{B} + C </math> Template:Math proof W(w)}{w} \cancel{\color{OliveGreen}{ \frac{1}{A} }} dw </math>

<math> t = W\left(w\right) \rightarrow te^t=w \;\;\;\; \frac{ d }{ dt } te^t = \left(t+1\right)e^t </math>

<math>\int W\left(A e^{Bx}\right) \, dx \; = \; \frac{1}{B} \int \frac{t}{te^t}\left(t+1\right)e^t dt </math>

<math>\int W\left(A e^{Bx}\right) \, dx \; = \; \frac{1}{B} \int \frac{ \cancel{\color{OliveGreen}{t}} }{ \cancel{\color{OliveGreen}{t}} \cancel{\color{BrickRed}{e^t}} }\left(t+1\right) \cancel{\color{BrickRed}{e^t}} dt </math>

<math>\int W\left(A e^{Bx}\right) \, dx \; = \; \frac{1}{B} \int (t+1) dt </math>

<math> \int W\left(A e^{Bx}\right) \, dx \; = \; \frac{t^2}{2B} + \frac{t}{B} + C </math>

<math> t = W\left(w\right) </math>

<math> \int W\left(A e^{Bx}\right) \, dx \; = \; \frac{ W\left(w\right) ^2}{2B} + \frac{ W\left(w\right) }{B} + C </math>

<math> w = Av </math>

<math> \int W\left(A e^{Bx}\right) \, dx \; = \; \frac{ W\left(Av\right) ^2}{2B} + \frac{ W\left(Av\right) }{B} + C </math>

<math> v = e^u </math>

<math> \int W\left(A e^{Bx}\right) \, dx \; = \; \frac{ W\left(Ae^u\right) ^2}{2B} + \frac{ W\left(Ae^u\right) }{B} + C </math>

<math> u = Bx </math>

<math> \int W\left(A e^{Bx}\right) \, dx \; = \; \frac{ W\left(Ae^{Bx}\right) ^2}{2B} + \frac{ W\left(Ae^{Bx}\right) }{B} + C </math> }}

<math display="block"> \int \frac{ W(x) }{x^2} \, dx \; = \; \operatorname{Ei}\left(- W(x) \right) - e^{ - W(x) } + C </math> Template:Math proof

ApplicationsEdit

Solving equationsEdit

The Lambert Template:Mvar function is used to solve equations in which the unknown quantity occurs both in the base and in the exponent, or both inside and outside of a logarithm. The strategy is to convert such an equation into one of the form Template:Math and then to solve for Template:Mvar using the Template:Mvar function.

For example, the equation

<math>3^x=2x+2</math>

(where Template:Mvar is an unknown real number) can be solved by rewriting it as

<math>\begin{align} &(x+1)\ 3^{-x}=\frac{1}{2} & (\mbox{multiply by } 3^{-x}/2) \\

\Leftrightarrow\ &(-x-1)\ 3^{-x-1} = -\frac{1}{6} & (\mbox{multiply by } {-}1/3) \\ \Leftrightarrow\ &(\ln 3) (-x-1)\ e^{(\ln 3)(-x-1)} = -\frac{\ln 3}{6} & (\mbox{multiply by } \ln 3) \end{align}</math>

This last equation has the desired form and the solutions for real x are:

<math>(\ln 3) (-x-1) = W_0\left(\frac{-\ln 3}{6}\right) \ \ \ \textrm{ or }\ \ \ (\ln 3) (-x-1) = W_{-1}\left(\frac{-\ln 3}{6}\right) </math>

and thus:

<math>x= -1-\frac{W_0\left(-\frac{\ln 3}{6}\right)}{\ln 3} = -0.79011\ldots \ \ \textrm{ or }\ \ x= -1-\frac{W_{-1}\left(-\frac{\ln 3}{6}\right)}{\ln 3} = 1.44456\ldots</math>

Generally, the solution to

<math>x = a+b\,e^{cx}</math>

is:

<math>x=a-\frac{1}{c}W(-bc\,e^{ac})</math>

where a, b, and c are complex constants, with b and c not equal to zero, and the W function is of any integer order.

Inviscid flowsEdit

Applying the unusual accelerating traveling-wave Ansatz in the form of <math>\rho(\eta) = \rho\big(x-\frac{at^2}{2} \big)</math> (where <math>\rho</math>, <math>\eta</math>, a, x and t are the density, the reduced variable, the acceleration, the spatial and the temporal variables) the fluid density of the corresponding Euler equation can be given with the help of the W function.<ref>Template:Cite journal</ref>

Viscous flowsEdit

Granular and debris flow fronts and deposits, and the fronts of viscous fluids in natural events and in laboratory experiments can be described by using the Lambert–Euler omega function as follows:

<math>H(x)= 1 + W \left((H(0) -1) e^{(H(0)-1)-\frac{x}{L}}\right),</math>

where Template:Math is the debris flow height, Template:Mvar is the channel downstream position, Template:Mvar is the unified model parameter consisting of several physical and geometrical parameters of the flow, flow height and the hydraulic pressure gradient.

In pipe flow, the Lambert W function is part of the explicit formulation of the Colebrook equation for finding the Darcy friction factor. This factor is used to determine the pressure drop through a straight run of pipe when the flow is turbulent.<ref name="AAMore">Template:Cite journal</ref>

Time-dependent flow in simple branch hydraulic systemsEdit

The principal branch of the Lambert Template:Mvar function is employed in the field of mechanical engineering, in the study of time dependent transfer of Newtonian fluids between two reservoirs with varying free surface levels, using centrifugal pumps.<ref>Template:Cite journal</ref> The Lambert Template:Mvar function provided an exact solution to the flow rate of fluid in both the laminar and turbulent regimes: <math display="block">\begin{align} Q_\text{turb} &= \frac{Q_i}{\zeta_i} W_0\left[\zeta_i \, e^{(\zeta_i+\beta t/b)}\right]\\ Q_\text{lam} &= \frac{Q_i}{\xi_i} W_0\left[\xi_i \, e^{\left(\xi_i+\beta t/(b-\Gamma_1)\right)}\right] \end{align}</math> where <math>Q_i</math> is the initial flow rate and <math>t</math> is time.

NeuroimagingEdit

The Lambert Template:Mvar function is employed in the field of neuroimaging for linking cerebral blood flow and oxygen consumption changes within a brain voxel, to the corresponding blood oxygenation level dependent (BOLD) signal.<ref>Template:Cite journal</ref>

Chemical engineeringEdit

The Lambert Template:Mvar function is employed in the field of chemical engineering for modeling the porous electrode film thickness in a glassy carbon based supercapacitor for electrochemical energy storage. The Lambert Template:Mvar function provides an exact solution for a gas phase thermal activation process where growth of carbon film and combustion of the same film compete with each other.<ref>Template:Cite journal</ref><ref>Template:Cite journal</ref>

Crystal growthEdit

In the crystal growth, the negative principal of the Lambert W-function can be used to calculate the distribution coefficient, <math display="inline">k</math>, and solute concentration in the melt, <math display="inline">C_L</math>,<ref>Template:Cite journal https://doi.org/10.1016/j.jcrysgro.2014.03.028</ref><ref>Template:Cite journal https://doi.org/10.1016/j.jcrysgro.2024.127605</ref> from the Scheil equation:

<math>\begin{align}

& k = \frac{W_0(Z)}{\ln(1-fs)} \\ & C_L=\frac{C_0}{(1-fs)} e^{W_0(Z)}\\ & Z = \frac{C_S}{C_0} (1-fs) \ln(1-fs) \end{align} </math>

Materials scienceEdit

The Lambert Template:Mvar function is employed in the field of epitaxial film growth for the determination of the critical dislocation onset film thickness. This is the calculated thickness of an epitaxial film, where due to thermodynamic principles the film will develop crystallographic dislocations in order to minimise the elastic energy stored in the films. Prior to application of Lambert Template:Mvar for this problem, the critical thickness had to be determined via solving an implicit equation. Lambert Template:Mvar turns it in an explicit equation for analytical handling with ease.<ref>Template:Cite journal</ref>

SemiconductorEdit

It was shown that a W-function describes the relation between voltage, current and resistance in a diode.<ref>Template:Cite journal</ref>

Porous mediaEdit

The Lambert Template:Mvar function has been employed in the field of fluid flow in porous media to model the tilt of an interface separating two gravitationally segregated fluids in a homogeneous tilted porous bed of constant dip and thickness where the heavier fluid, injected at the bottom end, displaces the lighter fluid that is produced at the same rate from the top end. The principal branch of the solution corresponds to stable displacements while the −1 branch applies if the displacement is unstable with the heavier fluid running underneath the lighter fluid.<ref>Template:Cite journal([2])</ref>

Bernoulli numbers and Todd genusEdit

The equation (linked with the generating functions of Bernoulli numbers and Todd genus):

<math> Y = \frac{X}{1-e^X}</math>

can be solved by means of the two real branches Template:Math and Template:Math:

<math> X(Y) = \begin{cases}

W_{-1}\left( Y e^Y\right) - W_0\left( Y e^Y\right) = Y - W_0\left( Y e^Y\right) &\text{for }Y < -1,\\ W_0\left( Y e^Y\right) - W_{-1}\left( Y e^Y\right) = Y - W_{-1}\left(Y e^Y\right) &\text{for }-1 < Y < 0. \end{cases}</math>

This application shows that the branch difference of the Template:Mvar function can be employed in order to solve other transcendental equations.<ref>D. J. Jeffrey and J. E. Jankowski, "Branch differences and Lambert W"</ref>

StatisticsEdit

The centroid of a set of histograms defined with respect to the symmetrized Kullback–Leibler divergence (also called the Jeffreys divergence <ref>Template:Cite journal</ref>) has a closed form using the Lambert Template:Mvar function.<ref>F. Nielsen, "Jeffreys Centroids: A Closed-Form Expression for Positive Histograms and a Guaranteed Tight Approximation for Frequency Histograms"</ref>

Pooling of tests for infectious diseasesEdit

Solving for the optimal group size to pool tests so that at least one individual is infected involves the Lambert Template:Math function.<ref>https://arxiv.org/abs/2005.03051 J. Batson et al., "A COMPARISON OF GROUP TESTING ARCHITECTURES FOR COVID-19 TESTING".</ref><ref>A.Z. Broder, "A Note on Double Pooling Tests".</ref><ref> Template:Cite journal</ref>

Exact solutions of the Schrödinger equationEdit

The Lambert Template:Mvar function appears in a quantum-mechanical potential, which affords the fifth – next to those of the harmonic oscillator plus centrifugal, the Coulomb plus inverse square, the Morse, and the inverse square root potential – exact solution to the stationary one-dimensional Schrödinger equation in terms of the confluent hypergeometric functions. The potential is given as

<math> V = \frac{V_0}{1+W \left(e^{-\frac{x}{\sigma}}\right)}.</math>

A peculiarity of the solution is that each of the two fundamental solutions that compose the general solution of the Schrödinger equation is given by a combination of two confluent hypergeometric functions of an argument proportional to<ref>A.M. Ishkhanyan, "The Lambert W barrier – an exactly solvable confluent hypergeometric potential".</ref>

<math> z = W \left(e^{-\frac{x}{\sigma}}\right).</math>

The Lambert Template:Mvar function also appears in the exact solution for the bound state energy of the one dimensional Schrödinger equation with a Double Delta Potential.

Exact solution of QCD coupling constantEdit

In Quantum chromodynamics, the quantum field theory of the Strong interaction, the coupling constant <math>\alpha_\text{s}</math> is computed perturbatively, the order n corresponding to Feynman diagrams including n quantum loops.<ref name=PPNG_review_2016>Template:Cite journal</ref> The first order, Template:Math, solution is exact (at that order) and analytical. At higher orders, Template:Math, there is no exact and analytical solution and one typically uses an iterative method to furnish an approximate solution. However, for second order, Template:Math, the Lambert function provides an exact (if non-analytical) solution.<ref name=PPNG_review_2016 />

Exact solutions of the Einstein vacuum equationsEdit

In the Schwarzschild metric solution of the Einstein vacuum equations, the Template:Mvar function is needed to go from the Eddington–Finkelstein coordinates to the Schwarzschild coordinates. For this reason, it also appears in the construction of the Kruskal–Szekeres coordinates.

Resonances of the delta-shell potentialEdit

The s-wave resonances of the delta-shell potential can be written exactly in terms of the Lambert Template:Mvar function.<ref>Template:Cite journal</ref>

Thermodynamic equilibriumEdit

If a reaction involves reactants and products having heat capacities that are constant with temperature then the equilibrium constant Template:Mvar obeys

<math>\ln K=\frac{a}{T}+b+c\ln T</math>

for some constants Template:Mvar, Template:Mvar, and Template:Mvar. When Template:Mvar (equal to Template:Math) is not zero the value or values of Template:Mvar can be found where Template:Mvar equals a given value as follows, where Template:Mvar can be used for Template:Math.

<math>\begin{align}

-a&=(b-\ln K)T+cT\ln T\\ &=(b-\ln K)e^L+cLe^L\\[5pt] -\frac{a}{c}&=\left(\frac{b-\ln K}{c}+L\right)e^L\\[5pt] -\frac{a}{c}e^\frac{b-\ln K}{c}&=\left(L+\frac{b-\ln K}{c}\right)e^{L+\frac{b-\ln K}{c}}\\[5pt] L&=W\left(-\frac{a}{c}e^\frac{b-\ln K}{c}\right)+\frac{\ln K-b}{c}\\[5pt] T&=\exp\left(W\left(-\frac{a}{c}e^\frac{b-\ln K}{c}\right)+\frac{\ln K-b}{c}\right). \end{align}</math>

If Template:Mvar and Template:Mvar have the same sign there will be either two solutions or none (or one if the argument of Template:Mvar is exactly Template:Math). (The upper solution may not be relevant.) If they have opposite signs, there will be one solution.

Phase separation of polymer mixturesEdit

In the calculation of the phase diagram of thermodynamically incompatible polymer mixtures according to the Edmond-Ogston model, the solutions for binodal and tie-lines are formulated in terms of Lambert Template:Mvar functions.<ref>Template:Cite journal</ref>

Wien's displacement law in a D-dimensional universeEdit

Wien's displacement law is expressed as <math>\nu _{\max }/T=\alpha =\mathrm{const}</math>. With <math>x=h\nu _{\max } / k_\mathrm{B}T</math> and <math>d\rho _{T}\left( x\right) /dx=0</math>, where <math>\rho_{T}</math> is the spectral energy energy density, one finds <math>e^{-x}=1-\frac{x}{D}</math>, where <math>D</math> is the number of degrees of freedom for spatial translation. The solution <math>x=D+W\left( -De^{-D}\right)</math> shows that the spectral energy density is dependent on the dimensionality of the universe.<ref>Template:Cite journal</ref>

AdS/CFT correspondenceEdit

The classical finite-size corrections to the dispersion relations of giant magnons, single spikes and GKP strings can be expressed in terms of the Lambert Template:Mvar function.<ref>Template:Cite journal</ref><ref>Template:Cite journal</ref>

EpidemiologyEdit

In the Template:Math limit of the SIR model, the proportion of susceptible and recovered individuals has a solution in terms of the Lambert Template:Mvar function.<ref>{{#invoke:citation/CS1|citation |CitationClass=web }}</ref>

Determination of the time of flight of a projectileEdit

The total time of the journey of a projectile which experiences air resistance proportional to its velocity can be determined in exact form by using the Lambert Template:Math function.<ref>Template:Cite journal</ref>

Electromagnetic surface wave propagationEdit

The transcendental equation that appears in the determination of the propagation wave number of an electromagnetic axially symmetric surface wave (a low-attenuation single TM01 mode) propagating in a cylindrical metallic wire gives rise to an equation like Template:Math (where Template:Mvar and Template:Mvar clump together the geometrical and physical factors of the problem), which is solved by the Lambert Template:Mvar function. The first solution to this problem, due to Sommerfeld circa 1898, already contained an iterative method to determine the value of the Lambert Template:Mvar function.<ref>Template:Cite journal</ref>

Orthogonal trajectories of real ellipsesEdit

The family of ellipses <math>x^2+(1-\varepsilon^2)y^2 =\varepsilon^2</math> centered at <math>(0, 0)</math> is parameterized by eccentricity <math>\varepsilon</math>. The orthogonal trajectories of this family are given by the differential equation <math>\left ( \frac{1}{y}+y \right )dy=\left ( \frac{1}{x}-x \right )dx</math> whose general solution is the family <math>y^2=</math><math>W_0(x^2\exp(-2C-x^2))</math>.

GeneralizationsEdit

The standard Lambert Template:Mvar function expresses exact solutions to transcendental algebraic equations (in Template:Mvar) of the form: Template:NumBlk where Template:Math, Template:Mvar and Template:Mvar are real constants. The solution is <math display="block"> x = r + \frac{1}{c} W\left( \frac{c\,e^{-c r}}{a_0} \right). </math> Generalizations of the Lambert Template:Mvar function<ref>Template:Cite journal</ref><ref>Template:Cite journal</ref><ref>Template:Cite journal</ref> include:

Applications of the Lambert Template:Mvar function in fundamental physical problems are not exhausted even for the standard case expressed in (Template:EquationNote) as seen recently in the area of atomic, molecular, and optical physics.<ref>Template:Cite journal</ref>

PlotsEdit

Numerical evaluationEdit

The Template:Mvar function may be approximated using Newton's method, with successive approximations to Template:Math (so Template:Math) being

<math>w_{j+1}=w_j-\frac{w_j e^{w_j}-z}{e^{w_j}+w_j e^{w_j}}.</math>

The Template:Mvar function may also be approximated using Halley's method,

<math>

w_{j+1}=w_j-\frac{w_j e^{w_j}-z}{e^{w_j}\left(w_j+1\right)-\dfrac{\left(w_j+2\right)\left(w_je^{w_j}-z\right)}{2w_j+2}} </math> given in Corless et al.<ref name="Corless" /> to compute Template:Mvar.

For real <math>x \ge -1/e</math>, it may be approximated by the quadratic-rate recursive formula of R. Iacono and J.P. Boyd:<ref name="doi.org"/>

<math>w_{n+1} (x) = \frac{w_{n} (x)}{1 + w_{n} (x)} \left( 1 + \log \left(\frac{x}{w_{n} (x)} \right) \right).</math>

Lajos Lóczi proves<ref>Template:Cite journal</ref> that by using this iteration with an appropriate starting value <math>w_0 (x)</math>,

  • For the principal branch <math>W_0:</math>
    • if <math>x \in (e,\infty)</math>: <math>w_0 (x) = \log(x) - \log(\log(x)),</math>
    • if <math>x \in (0, e):</math> <math>w_0 (x) = x/e,</math>
    • if <math>x \in (-1/e, 0):</math> <math>w_0 (x) = \frac{ ex \log(1+\sqrt{1+ex}) }{ 1+ ex + \sqrt{1+ex} },</math>
  • For the branch <math>W_{-1}:</math>
    • if <math>x \in (-1/4, 0):</math> <math>w_0 (x) = \log(-x) - \log(-\log(-x)),</math>
    • if <math>x \in (-1/e, -1/4]:</math> <math>w_0 (x) = -1 - \sqrt{2}\sqrt{1+ex},</math>

one can determine the maximum number of iteration steps in advance for any precision:

  • if <math>x \in (e,\infty)</math> (Theorem 2.4): <math>0 < W_0 (x) - w_n(x) < \left( \log(1+1/e) \right)^{2^n},</math>
  • if <math>x \in (0, e)</math> (Theorem 2.9): <math>0 < W_0 (x) - w_n(x) < \frac{\left( 1 - 1/e \right)^{2^n-1}}{5},</math>
  • if <math>x \in (-1/e, 0):</math>
    • for the principal branch <math>W_0</math> (Theorem 2.17): <math>0 < w_n(x) - W_0 (x) < \left( 1/10 \right)^{2^n},</math>
    • for the branch <math>W_{-1}</math>(Theorem 2.23): <math>0 < W_{-1} (x) - w_n(x) < \left( 1/2 \right)^{2^n}.</math>


Toshio Fukushima has presented a fast method for approximating the real valued parts of the principal and secondary branches of the Template:Mvar function without using any iteration.<ref>{{#invoke:citation/CS1|citation |CitationClass=web }}</ref> In this method the Template:Mvar function is evaluated as a conditional switch of rational functions on transformed variables: <math display="block">W_0(z) = \begin{cases}

 X_k(x), & (z_{k-1}<=z<z_k, \quad k=1,2,\ldots,17), \\
 U_k(u), & (z_{k-1}<=z<z_k, \quad k=18,19),

\end{cases} </math> <math display="block">W_{-1}(z) = \begin{cases}

 Y_k(y), & (z_{k-1}<=z<z_k, \quad k=-1,-2,\ldots,-7), \\
 V_k(u), & (z_{k-1}<=z<z_k, \quad k=-8,-9,-10),

\end{cases} </math> where Template:Mvar, Template:Mvar, Template:Mvar and Template:Mvar are transformations of Template:Mvar:

<math>x=\sqrt{z+1/e}, \quad u=\ln{z}, \quad y=-z/(x+1/\sqrt{e}), \quad v=\ln(-z)</math>.

Here <math>X_k(x)</math>, <math>U_k(u)</math>, <math>Y_k(y)</math>, and <math>V_k(v)</math> are rational functions whose coefficients for different Template:Mvar-values are listed in the referenced paper together with the <math>z_k</math> values that determine the subdomains. With higher degree polynomials in these rational functions the method can approximate the Template:Mvar function more accurately.

For example, when <math>-1/e\leq z\leq2.0082178115844727</math>, <math>W_0(z)</math> can be approximated to 24 bits of accuracy on 64-bit floating point values as <math>W_0(z)\approx X_1(x)=\frac{\sum_i^4P_ix^i}{\sum_i^3Q_ix^i}</math> where Template:Mvar is defined with the transformation above and the coefficients <math>P_i</math> and <math>Q_i</math> are given in the table below.

Coefficients
<math>i</math> <math>P_i</math> <math>Q_i</math>
0 Template:Val 1
1 Template:Val Template:Val
2 Template:Val Template:Val
3 Template:Val Template:Val
4 Template:Val 0

Fukushima also offers an approximation with 50 bits of accuracy on 64-bit floats that uses 8th- and 7th-degree polynomials.

SoftwareEdit

The Lambert Template:Mvar function is implemented in many programming languages. Some of them are listed below:

Language Function name Required library
C/C++ gsl_sf_lambert_W0 and gsl_sf_lambert_Wm1 citation CitationClass=web

}}</ref>

lambert_w0, lambert_wm1, lambert_w0_prime, and lambert_wm1_prime citation CitationClass=web

}}</ref>

LambertW LambertW-function<ref>Template:Citation</ref>
GP lambertw
Julia lambertw citation CitationClass=web

}}</ref> ||

Maple citation CitationClass=web

}}</ref> ||

Mathematica ProductLog (with LambertW as a silent alias)<ref>ProductLog - Wolfram Language Reference</ref>
Matlab lambertw<ref>lambertw – MATLAB</ref>
Maxima lambert_w<ref>Maxima, a Computer Algebra System</ref>
Octave lambertw citation CitationClass=web

}}</ref>

PARI glambertW, lambertWC, glambertW_i, mplambertW, lambertW
Perl LambertW ntheory<ref>ntheory - MetaCPAN</ref>
Python lambertw scipy<ref>{{#invoke:citation/CS1|citation CitationClass=web

}}</ref>

R lambertW0 and lambertWm1 lamW<ref>Template:Citation</ref>
Rust lambert_w, lambert_w0 and lambert_wm1 lambert_w<ref>Template:Citation</ref>

See alsoEdit

NotesEdit

Template:Reflist

ReferencesEdit

External linksEdit

Template:Sister project