Given that
- $x^x = y$; and
- given some value for $y$
is there a way to expressly solve that equation for $x$?
Given that
is there a way to expressly solve that equation for $x$?
As Aryabhata mentions this is another application for the Lambert W function. The solution to your problem is presented in the wikipedia article. Using elementary substitutions you have
$$x=\frac{\ln(y)}{W(\ln y)}$$
If you are interested in the asymptotic growth of $x$ relative to $y$, note that for every $z$: $W(z) = \ln{z} - \ln\ln{z} + o(1)$. Hence:
$$x=\frac{\ln(y)}{\ln{\ln y} - \ln\ln{\ln y} + o(1)} = \Theta\left( \frac{\ln y}{\ln \ln y}\right)$$
You should try WolframAlpha for similar problems. WolframAlpha would solve y=x^x for y=5 as shown here (using Lamber W Function as suggested before).
Given y, you can solve y = x**x with a simple iteration:
It's akin to Newton's method of finding square roots.
The convergence of this process is the "natural base of y to itself", or the "exponential root" of y.
If you think about this iteration, you're iteratively performing the base-change logarithm formula. So at first you get y's logarithm (or "bit length") in base 2. Then in base of what y was in base 2, and so on. Successive values oscillate around the "natural base of y to itself" until it converges.
It's pretty interesting. I wonder if there's anything special about the value of x for each y.
As other people have said, you can take log of each side, to get:
ln y = ln x**x, which is ln y = x ln x, and the iteration