Monday, September 14, 2015

[lolczgib] Solving x^x with the Lambert W function

x^x = c
substitute u = log(c)
x^x = e^u
extract x-th root
x = (e^u)^(1/x)
multiply exponents
x = e^(u/x)
multiply through by u/x to reach Lambert W form
(u/x)x = (u/x)e^(u/x)
simplify lhs.  Conveniently, all the x disappear from the lhs.
u = (u/x)e^(u/x)
use Lambert W to invert
W(u) = u/x
solve for x
x = u/W(u)
substitute u
x = (log c)/W(log c)
mathematica notation, solving x^x=c to 143 digits of precision
xsolve[c_]:=Log[c]/ProductLog[Log[c]]
c=...
N[xsolve[c],143] 74.215455138614470036560907311947494925242162584214386781502913620166334686140631552220101767881353562349026869498723648351414727671883211360092

Possibly useful for steganography: a suspiciously large number becomes a possibly less suspicious smaller number, albeit with lots of digits after the decimal point.

No comments :