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.

*Related*

To

**leave a comment** for the author, please follow the link and comment on his blog:

** dahtah » R**.

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,

trading) and more...

If you got this far, why not

__subscribe for updates__ from the site? Choose your flavor:

e-mail,

twitter,

RSS, or

facebook...

**Tags:** optimisation, R, science, statistics