# Lambert W / Product log function?

I would like to solve this equation:

$$n \cdot 2^n = 15000$$

And according to WolframAlpha

$$n=\frac{W(15000\log(2))}{\log(2)}, \text{ where }\log\text{ is ln}$$

Which shows that I need to use the product log function $W$ which I tried looking up on wikipedia. I don't need the complex numbers, just real numbers.

Additionally, are there ways of solving the original equation without the $W$ functions?

Can someone explain the rules and how to do this please?

I would eventually like to implement a way to find $n$ programmaticly (if possible-in python).

• Wolfram clearly says "$\log$" is the natural logarithm function. So you're misquoting them. – Michael Hardy Mar 12 '12 at 3:32
• whoops, fixed it – Dacto Mar 12 '12 at 3:34
• Surely there is some package somewhere on the 'net which implements the $W$ function. – Alex Becker Mar 12 '12 at 3:36
• You can always implement a root-finding algorithm like bisection search or Newton's method. If you want a simple mathematical expression that directly gives $n$, it doesn't exist except in terms of the $W$ function. – Rahul Mar 12 '12 at 4:05
• @Dacto just out of curiosity: why do you want to solve it w/o W()? I mean the solution is the Lambert W function (plus a log) -- you won't find another solution. Its like saying I want to find a solution of y = exp(x) but without the logarithm -- not gonna happen ;) – Georg M. Goerg Nov 12 '16 at 0:07

You can use Newton's method for finding the root of $f(n) = n 2^n - 15000 = 0$: $$n_{i+1} = n_i - \frac{f(n_i)}{f'(n_i)} = n_i - \frac{n_i 2^{n_i} - 15000}{2^{n_i} (1+n_i \log(2))}$$ and start with a suitable guess (look up the Wikipedia page on that). Here $n_0 = 1$ should do.You keep repeating the process for $i \ge 1$ until you reach a proper accuracy, i.e., you terminate at iteration $t$ when $n_{t} - n_{t-1} < \epsilon$ for some tiny $\epsilon$ you define.