I need to solve the next equation x:


I inserted this into Wolfram Alpha and it returned:

$x = y \Bbb{W}[\frac{e^\frac{d-b}{y}d}{y})]$

y, d, b, and x are all real, positive numbers.

How do I solve for x by implementing the lambert W function?


  • $\begingroup$ Yes, that $\mathbb W$ is the Lambert W function. $\endgroup$ – Robert Israel Apr 5 '16 at 15:37
  • $\begingroup$ Welcome to math stack exchange! $\endgroup$ – Peter Apr 5 '16 at 16:17
  • $\begingroup$ Um, doesn't $W(0)=0\implies\frac0{W(t)}=0\implies\ln(0)=undefined?$ $\endgroup$ – Simply Beautiful Art Apr 5 '16 at 21:22
  • $\begingroup$ W(0) is the initial weight of something at time 0 so W(0) does not equal 0 for this problem. $\endgroup$ – Christina Apr 6 '16 at 18:31
  • $\begingroup$ "How do I solve for $x$ by implementing the Lambert $W$ function?" what is the problem, you have the answer? $\endgroup$ – Yves Daoust Apr 12 '16 at 13:16

This answer gives the following method for computing Lambert W:

Analysis of $we^w$

For $w\gt0$, $we^w$ increases monotonically from $0$ to $\infty$. When $w\lt0$, $we^w$ is negative.

Thus, for $x\gt0$, $\mathrm{W}(x)$ is positive and well-defined and increases monotonically.

For $w\lt0$, $we^w$ reaches a minimum of $-1/e$ at $w=-1$. On $(-1,0)$, $w e^w$ increases monotonically from $-1/e$ to $0$. On $(-\infty,-1)$, $w e^w$ decreases monotonically from $0$ to $-1/e$. Thus, on $(-1/e,0)$, $\mathrm{W}(x)$ can have one of two values, one in $(-1,0)$ and another in $(-\infty,-1)$. The value in $(-1,0)$ is called the principal value.

The iteration

Using Newton's method to solve $we^w$ yields the following iterative step for finding $\mathrm{W}(x)$: $$ w_{\text{new}}=\frac{xe^{-w}+w^2}{w+1} $$

Initial values of $w$

For the principal value, when $-1/e\le x\lt0$, and when $0\le x\le10$, use $w=0$. When $x\gt10$, use $w=\log(x)-\log(\log(x))$.

For the non-principal value, when $x$ is in $[-1/e,-.1]$, use $w=-2$; and if $x$ is in $(-.1,0)$, use $w=\log(-x)-\log(-\log(-x))$.

  • $\begingroup$ If I may : one of these days, if you have time to waste, could we go to a chat room ? I would like to discuss with you about algorithms for solving $x=w e^w$. I leave that to your initiative. Just for your information : I am available between 6:00am and 1:00pm on French time. Thanks and cheers. $\endgroup$ – Claude Leibovici Nov 26 '16 at 9:54
  • $\begingroup$ I am often in the Math Chat Room. $\endgroup$ – robjohn Nov 26 '16 at 11:13

Not sure if this'll help. You've probably read by now that the Lambert W-Function is defined as the inverse relation of $xe^x$. That is to say, $W(xe^x)=x$.

You can usually just leave the $W$ function as it is, or make a numerical computation using WolframAlpha, or various numerical methods (Newton's method, Halley's method, etc.) to approximate it.

So, if you want to plug in $d,b,y$ values to find the various $x$-values, then you'll just need to use numerical methods to solve it (see @robjohn's answer).

There is no way to further simplify. The reason the function even exists, is because it is a special function which has been defined for this purpose. You can't express it in terms of elementary functions.

Now, to get the Wolfram result:


$d-x+y[\ln d-\ln x] =b$

$x+y\ln x =y\ln d+d-b$

$m=y\ln d+d-b$

$x+y\ln x=m$

$\frac{x}{y}+\ln x=\frac{m}{y}$


$\frac{x}{y} e^{\frac{x}{y}} = \frac{1}{y} e^{\frac{m}{y}}$

Taking the product log of both sides, we end up with:

$\frac{x}{y} = W[\frac{1}{y} e^{\frac{m}{y}}]$

So, solving for $x$, we get that:

$x = y W[\frac{1}{y} e^{\frac{m}{y}}]$

To get the result in the form of Wolfram's answer, just substitute back in for $m$:

$x = y W[\frac{1}{y} e^{\frac{y\ln d+d-b}{y}}]$

$x = y W[\frac{1}{y} e^{\ln d+\frac{d-b}{y}}]$

$x = y W[\frac{1}{y} d e^{\frac{d-b}{y}}]$

And that's as far as we can get. If you want to numerically evaluate $x$, then you can either use iterative processes, such as are on the Wikipedia page, or just use Wolfram to calculate.


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.