Lambert W function
In mathematics, the Lambert function, also called the omega function or product logarithm, is a multivalued function, namely the branches of the converse relation of the function , where is any complex number and is the exponential function. For each integer there is one branch, denoted by , which is a complex-valued function of one complex argument. is known as the principal branch. These functions have the following property: if and are any complex numbers, then holds if and only if When dealing with real numbers only, the two branches and suffice: for real numbers and the equation  can be solved for only if ; we get if and the two values and if . The Lambert relation 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 (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 . 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 function. Terminology. The Lambert function is named after Johann Heinrich Lambert. The principal branch is denoted in the Digital Library of Mathematical Functions, and the branch is denoted there. The notation convention chosen here (with and ) follows the canonical reference on the Lambert function by Corless, Gonnet, Hare, Jeffrey and Knuth. The name "product logarithm" can be understood as this: Since the inverse function of is called the logarithm, it makes sense to call the inverse "function" of the product as "product logarithm". (Technical note: as it is multivalued, it is not actually a function and thus W is  described as the converse relation rather than inverse function.) It is related to the Omega constant, which is equal to . History. Lambert first considered the related "Lambert's Transcendental Equation" in 1758, which led to an article by Leonhard Euler in 1783 that discussed the special case of . The function Lambert considered was Euler transformed this equation into the form Both authors derived a series solution for their equations. Once Euler had solved this equation, he considered the case . Taking limits, he derived the equation He then put and obtained a convergent series solution for the resulting equation, expressing "x  in terms of c". After taking derivatives with respect to and some manipulation, the standard form of the Lambert function is obtained. In 1993, it was reported that the Lambert function provides an exact solution to the quantum-mechanical double-well Dirac delta function model for equal charges—a fundamental problem in physics. In response, Rob Corless and developers of the Maple computer algebra system made a library search and found that this function was ubiquitous in nature. Another example where this function is found is in Michaelis–Menten kinetics. Although it was widely believed that the Lambert function can not be expressed in terms of elementary (Liouvillian) functions, the first published proof did not appear until 2008. Elementary properties, branches and range. There are countably many branches of the function, denoted by , for integer ; being the main (or principal) branch. is defined for all complex numbers "z" while with is defined for all non-zero "z". We have and for all . The branch point for the principal branch is at , with a branch cut that extends to along the negative real axis. This branch cut separates the principal branch from the two branches and . In all branches with , there  is a branch point at and a branch cut along the entire negative real axis. The functions are all injective and their ranges are disjoint. The range of the entire multivalued function 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 . Inverse. The range plot above also delineates the regions in the complex plane where the simple inverse relationship is true. "f" = "ze" implies that there exists an "n" such that , where "n" depends upon the value of "z". The value of the  integer "n" changes abruptly when "ze" is at the branch cut of , which means that , except for where it is . Defining , where "x" and "y" are real, and expressing "e" in polar coordinates, it is seen that For formula_8, the branch cut for is the non-positive real axis, so that and For formula_11, the branch cut for is the real axis with formula_12, so that the inequality becomes Inside the regions bounded by the above, there are no discontinuous changes in , and those regions specify where the "W" function is simply invertible, i.e. . Calculus. Derivative. By implicit differentiation, one  can show that all branches of satisfy the differential equation ( is not differentiable for .) As a consequence, we get the following formula for the derivative of "W": Using the identity , we get the following equivalent formula: At the origin we have Integral. The function , and many expressions involving , can be integrated using the substitution , i.e. : (The last equation is more common in the literature but is undefined at ). One consequence of this (using the fact that ) is the identity Asymptotic expansions. The Taylor series of around 0 can be found using the Lagrange inversion theorem and is given by The  radius of convergence is , 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 ; this holomorphic function defines the principal branch of the Lambert function. For large values of , is asymptotic to where , , and is a non-negative Stirling number of the first kind. Keeping only the first two terms of the expansion, The other real branch, , defined in the interval , has an approximation of the same form as approaches zero, with in this case and . Integer  and complex powers. Integer powers of also admit simple Taylor (or Laurent) series expansions at zero: More generally, for , the Lagrange inversion formula gives which is, in general, a Laurent series of order . Equivalently, the latter can be written in the form of a Taylor expansion of powers of : which holds for any and . Bounds and inequalities. A number of non-asymptotic bounds are known for the Lambert function. Hoorfar and Hassani showed that the following bound holds for : They also showed the general bound for every formula_28 and formula_29, with equality only for formula_30. The bound allows many other  bounds to be made, such as taking formula_31 which gives the bound In 2013 it was proven that the branch can be bounded as follows: Identities. A few identities follow from the definition: Note that, since is not injective, it does not always hold that , much like with the inverse trigonometric functions. For fixed and , the equation has two real solutions in , one of which is of course . Then, for and , as well as for and , is the other solution. Some other identities: Substituting in the definition: With Euler's iterated exponential : Special values. For any nonzero algebraic number , is  a transcendental number. Indeed, if is zero, then must be zero as well, and if is nonzero and algebraic, then by the Lindemann–Weierstrass theorem, must be transcendental, implying that must also be transcendental. The following are special values of the principal branch: Representations. The principal branch of the Lambert function can be represented by a proper integral, due to Poisson: On the wider domain , the considerably simpler representation was found by Mező: Another representation of the principal branch was found by the same author and previously by Kalugin-Jeffrey-Corless: The following continued fraction representation also holds for the  principal branch: Also, if : In turn, if , then Other formulas. Definite integrals. There are several useful definite integral formulas involving the principal branch of the function, including the following: The first identity can be found by writing the Gaussian integral in polar coordinates. The second identity can be derived by making the substitution , which gives Thus The third identity may be derived from the second by making the substitution and the first can also be derived from the third by the substitution . Except for along the branch cut (where the integral does not converge), the principal branch of the Lambert  function can be computed by the following integral: where the two integral expressions are equivalent due to the symmetry of the integrand. Indefinite integrals. formula_62 formula_63 formula_64 formula_66 formula_71 formula_73 formula_74 formula_75 formula_76 formula_78 formula_80 formula_82 formula_84 formula_85 Applications. Solving equations. The Lambert 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 and then to solve for . using the function. For example, the equation (where is an unknown  real number) can be solved by rewriting it as This last equation has the desired form and the solutions for real "x" are: and thus: Generally, the solution to is: 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. Viscous flows. 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: where is the debris flow height, is the channel downstream position , 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. Neuroimaging. The Lambert function was 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. Chemical engineering . The Lambert function was employed in the field of chemical engineering for modelling the porous electrode film thickness in a glassy carbon based supercapacitor for electrochemical energy storage. The Lambert function turned out to be the exact solution for a gas phase thermal activation process where growth of carbon film and combustion of the same film compete with each other. Materials science. The Lambert function was 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 for this problem, the critical thickness had to be determined via solving an implicit equation. Lambert turns it in an explicit equation for analytical handling with ease. Porous media. The Lambert 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. Bernoulli numbers and Todd genus. The equation (linked with the generating functions of Bernoulli numbers and Todd genus): can be solved by means of the two real branches and : This application shows that the branch difference of the function can be employed in order to solve other transcendental equations. Statistics. The centroid of a set of histograms defined with respect  to the symmetrized Kullback–Leibler divergence (also called the Jeffreys divergence ) has a closed form using the Lambert function. Pooling of tests for infectious diseases. Solving for the optimal group size to pool tests so that at least one individual is infected involves the Lambert function. Exact solutions of the Schrödinger equation. The Lambert 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 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 The Lambert 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 solutions of the Einstein vacuum equations. In the Schwarzschild metric solution of the Einstein vacuum equations, the 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 potential. The s-wave resonances of the delta-shell potential can be written exactly in terms of the Lambert function. Thermodynamic equilibrium. If a reaction involves reactants and products having heat capacities that are constant with temperature then the equilibrium constant obeys for some constants , , and . When (equal to ) is not zero we can find the value or values of where equals a given value as follows, where we use for . If and have the same sign there will  be either two solutions or none (or one if the argument of is exactly ). (The upper solution may not be relevant.) If they have opposite signs, there will be one solution. Phase separation of polymer mixtures. 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 functions. Wien's displacement law in a D-dimensional universe. Wien's displacement law is expressed as formula_99. With formula_100 and formula_101, where formula_102 is the spectral energy energy density, one finds formula_103 . The solution formula_104 shows that the spectral energy density is dependent on the dimensionality of the universe. AdS/CFT correspondence. 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 function. Epidemiology. In the limit of the SIR model, the proportion of susceptible and recovered individuals has a solution in terms of the Lambert function. Determination of the time of flight of a projectile. 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 function. Electromagnetic surface wave propagation. 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 (where and clump together the geometrical and physical factors of the problem), which is solved by the Lambert function. The first solution to this problem, due to Sommerfeld "circa" 1898, already contained an iterative method to determine the value of the Lambert function. Generalizations. The standard Lambert function expresses exact solutions  to "transcendental algebraic" equations (in ) of the form: where , and are real constants. The solution is formula_105 Generalizations of the Lambert function include: Applications of the Lambert function in fundamental physical problems are not exhausted even for the standard case expressed in () as seen recently in the area of atomic, molecular, and optical physics. Numerical evaluation. The function may be approximated using Newton's method, with successive approximations to (so ) being The function may also be approximated using Halley's method, given in Corless et al. to compute . Software. The Lambert function is implemented as codice_1 in Maple, codice_2 in  GP (and codice_3 in PARI), codice_2 in Matlab, also codice_2 in Octave with the codice_6 package, as codice_7 in Maxima, as codice_8 (with a silent alias codice_1) in Mathematica, as codice_2 in Python scipy's special function package, as codice_1 in Perl's codice_12 module, and as codice_13, codice_14 functions in the special functions section of the GNU Scientific Library (GSL). In the Boost C++ libraries, the calls are codice_15, codice_16, codice_17, and codice_18. In R, the Lambert function is implemented as the codice_19 and codice_20 functions in the codice_21 package. A C++ code for all the branches of the  complex Lambert function is available on the homepage of István Mező.