I'm trying to solve $ax = \log(x)^b$, where $a$ is a positive number, $b$ is a positive integer, and $\log$ is the natural logarithm.
Solving this equation is coming up when calculating the number of sample points needed to reach an error bound when using low-discrepancy sequences (such as Sobol's sequence) for Quasi-Monte Carlo integration. If I need to I can use a root finding algorithm to approximate this, but it would be nice to have a closed-form solution. How to approach this equation is definitely above my ability level.
As others have mentioned, there's no closed form using the standard functions, but it can be solved using the Lambert W (which has been in use for so long now that it really ought to be considered a standard function, IMHO).
If you aren't used to working with the Lambert W, it may not seem obvious how to apply it here. But you just need to manipulate your expression until you get an expression involving $ze^z$ for some $z$.
$$ax = \ln(x)^b$$ Now $x>0$ so we can substitute $x = e^u$ $$ae^u = u^b$$ $$a^{1/b}e^{u/b} = u$$ $$(a^{1/b}/b)e^{u/b} = u/b$$ Let $y=-u/b$ $$(a^{1/b}/b)e^{-y} = -y$$ $$(-a^{1/b}/b) = ye^y$$ We can now apply the Lambert W: $$W(-a^{1/b}/b) = W(ye^y) = y$$ So $$-u/b = W(-a^{1/b}/b)$$ That is, $$x = \exp(-b\, W(-a^{1/b}/b))$$
The Lambert W is multi-branched, for real-valued equations we need to look at the -1 and 0 branches.
Here's a short Sage / Python script which solves this problem. (Sage is built on top of Python, so if you can write Python, it's not too hard to pick up Sage). Sage uses
^for exponentiation, and it has the Lambert W.My code uses $a=0.5, b=2$ as its defaults.
Code
Output
Here's a live version you can play with on the SageMathCell server.