# Solution given by Wolfram Alpha but not _Mathematica_

Why will Mathematica not give a soluion to Solve[Log[x] == Log[j, Log[j, x]], j], but Wolfram Alpha will?

-
Reduce works. –  Michael E2 Jun 16 '14 at 14:04
The WolframAlpha result can be produced with Reduce[Log[x] == Log[j, Log[j, x]], j, Reals]. In general, you should not assume that Mathematica commands typed into WolframAlpha will be executed verbatim on the server side. –  Mark McClure Jun 16 '14 at 14:05
I see - I didn't realise this! –  martin Jun 16 '14 at 14:13
@martin Then you might be interested in this question. The answers might lead you to try Solve[Log[x] == Log[j, Log[j, x]], j, Reals, Method -> Reduce], an option which I had forgotten. –  Michael E2 Jun 16 '14 at 15:44
Michael E2, thanks :) –  martin Jun 16 '14 at 17:25

Wolfram|Alpha points out that this is a solution over the reals:

This is how to get this solution in Mathematica:

Reduce[Log[x] == Log[j, Log[j, x]], j, Reals]

(* Log[x] != 0 && j == x^E^-ProductLog[Log[x]^2] *)


Wolfram|Alpha tries to interpret input as natural language. Certain Mathematica expressions work, but they don't always do the same thing as in Mathematica. Here W|A interprets the input as "solve this equation with reasonable assumptions", not as "run the Mathematica code Solve[Log[x] == Log[j, Log[j, x]], j]".

-
Great - that you :) - Had me a little confused! –  martin Jun 16 '14 at 14:11
Is it better to use Reduce in most cases? –  martin Jun 16 '14 at 14:12
... Is there any way of solving for an extra Log? ie Reduce[Log[x] == Log[j, Log[j, Log[j, x]]], j, Reals]? –  martin Jun 16 '14 at 14:16
@martin Solve tends to be faster because it doesn't seek a general solution. E.g. in v8 Solve[Sin[x] == y, x] returned {{x -> ArcSin[y]}} which is not the general solution. Reduce[Sin[x] == y, x] returned C[1] \[Element] Integers && (x == \[Pi] - ArcSin[y] + 2 \[Pi] C[1] || x == ArcSin[y] + 2 \[Pi] C[1]) which is general. I couldn't find a v9 example off the top of my head but that's the main difference. In v9 (?) Solve can take the option Method -> Reduce to do what Reduce does ... (check the docs for another example on this). –  Szabolcs Jun 16 '14 at 14:16
Ah, ok, thanks - that helps me to understand a little better. –  martin Jun 16 '14 at 14:17