Lambert W function
From Wikipedia, the free encyclopedia
In mathematics, The Lambert W function, named after Johann Heinrich Lambert, also called the Omega function or product log, is the inverse function of f(w) = wew where ew is the natural exponential function and w is any complex number. We will denote the function here by W. For every complex number z, we have
Since the function f is not injective in (−∞, 0), the function W is multivalued in [−1/e, 0). If we restrict to real arguments x ≥ −1/e and demand w ≥ −1, then a single-valued function W0(x) is defined, whose graph is shown. We have W0(0) = 0 and W0(−1/e) = −1.
The Lambert W function cannot be expressed in terms of elementary functions. It is useful in combinatorics, for instance in the enumeration of trees. It can be used to solve various equations involving exponentials and also occurs in the solution of time-delayed differential equations, such as y'(t) = a y(t − 1).
Contents |
[edit] Differential equation
By implicit differentiation, one can show that W satisfies the differential equation
[edit] Taylor series
The Taylor series of W0 around 0 can be found using the Lagrange inversion theorem and is given by
The radius of convergence is 1/e, 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 (−∞, −1/e]; this holomorphic function defines the principal branch of the Lambert W function.
[edit] Applications
Many equations involving exponentials can be solved using the W function. The general strategy is to move all instances of the unknown to one side of the equation and make it look like Y = XeX at which point the W function provides the solution.
In other words :
For example:
Similar techniques show that
- xx = z
has solution
or, equivalently,
Whenever the complex infinite exponential
converges, the Lambert W function provides the actual limit value as
where ln(z) denotes the principal branch of the complex log function.
[edit] Integration
The function W(x), and many expressions involving W(x), can be integrated using the substitution w = W(x), i.e. x = w ew:
[edit] Special values
- (the Omega constant)
[edit] Plots
[edit] Evaluation algorithm
The W function may be evaluated using the recurrence relation
given in Corless et al. to compute W. Together with the evaluation error estimate given in Chapeau-Belandeau and Monir, the following Python code implements this:
import math class Error(Exception): pass def lambertW(x, prec=1e-12): w = 0 for i in xrange(100): wTimesExpW = w*math.exp(w) wPlusOneTimesExpW = (w+1)*math.exp(w) if prec>abs((x-wTimesExpW)/wPlusOneTimesExpW): break w = w-(wTimesExpW-x)/( wPlusOneTimesExpW-(w+2)*(wTimesExpW-x)/(2*w+2)) else: raise Error, "W doesn't converge fast enough for %f"%x return w
This computes the principal branch for x > 1 / e. It could be improved by giving better initial estimates.
The following closed form approximation may be used by itself when less accuracy is needed, or to give an excellent initial estimate to the above code, which then may need only a few iterations:
double desy_lambert_W(double x) { double lx1; if (x <= 500.0) { lx1 = ln(x + 1.0); return 0.665 * (1 + 0.0195 * lx1) * lx1 + 0.04; } return ln(x - 4.0) - (1.0 - 1.0/ln(x)) * ln(ln(x)); }
(from http://www.desy.de/~t00fri/qcdins/texhtml/lambertw/)
[edit] History
The Lambert W function has an unusual history: although its study dates back to a 1779 paper by Leonhard Euler, the inverse of wew was not recognized as a function worthy of attention in its own right until the 1980s. The recognition came with the function's implementation in the Maple computer algebra system, for which purpose the name Lambert W was introduced. Lambert's name was chosen instead of Euler's because Euler referenced earlier work by Lambert in his paper, and possibly because "naming yet another function after Euler would not be useful" (Corless et al.).
[edit] References and external links
- Corless et al. Notes about Lambert W research
- Corless et al. "On the Lambert W function" Adv. Computational Maths. 5, 329 - 359 (1996) (PDF)
- Chapeau-Blondeau, F. and Monir, A: "Evaluation of the Lambert W Function and Application to Generation of Generalized Gaussian Noise With Exponent 1/2", IEEE Trans. Signal Processing, 50(9), 2002
- MathWorld - Lambert W-Function
- Lambert function from Wolfram's function site.
- Francis et al. "Quantitative General Theory for Periodic Breathing" Circulation 102 (18): 2214. (2000). Use of Lambert function to solve delay-differential dynamics in human disease.
- Extreme Mathematics. Monographs on the Lambert W function, its numerical approximation and generalizations for W-like inverses of transcendental forms with repeated exponential towers.
- Computing the Lambert Wfunction
- Why W?