Yesterday I ran into an equation that was a sum of an exponential and a linear term:
It doesn’t take long to figure out that there is no analytical solution, and so I set out to write some crappy numerical code. After wasting some time with a fixed point iteration that did not really work, it occured to me that I most probably wasn’t the first person out there trying to solve such a simple equation. Indeed not.
The equation above has a solution in terms of a special function called Lambert’s W, and an nicer-looking one in terms of its cousin the generalised log (introduced by D. Kalman here).
Just like is the inverse of
,
is the inverse of
, and Lambert’s
is the inverse of
. Neither glog nor W can be computed analytically, but fast implementations for
are available (for R, it’s in the GSL package), and:
In terms of the generalised log function the solution to the equation is:
The (easy) proof is on page 5 of Kalman’s article. Here’s some R code:
require(gsl)
solve.lexpeq <- function(alpha,beta,delta)
{
v <- beta/alpha
-lambert_W0(-(delta/alpha)*exp(-v)) -v
}
So where does this turn up in statistics? Well, one example is finding the Maximum A Posterior estimate of a Poisson mean, if you put a Gaussian prior on the log of the mean.
R-bloggers.com offers daily e-mail updates about R news and tutorials on topics such as: visualization (ggplot2, Boxplots, maps, animation), programming (RStudio, Sweave, LaTeX, SQL, Eclipse, git, hadoop, Web Scraping) statistics (regression, PCA, time series,ecdf, trading) and more...

Zero Inflated Models and Generalized Linear Mixed Models with R.
Zuur, Saveliev, Ieno (2012).