Solve gives "generic" solutions only, which may not be valid under all conditions.
Reduce attempts to find generally valid solutions.
Your equation has the form a x + b == 0, where a and b are complicated expressions.
Solve says that the solution is x == -b/a.
In[1]:= Solve[a x + b == 0, x]
Out[1]= {{x -> -(b/a)}}
But this is not generally valid. If a == 0 and b != 0 then there are no solutions. If a == b == 0 then any x is a solution. Reduce can figure this out:
In[2]:= Reduce[a x + b == 0, x]
Out[2]= (b == 0 && a == 0) || (a != 0 && x == -(b/a))
In your case a and b are very complicated:
{a, b} = CoefficientList[
q*((-1 + 1/PH)*R - (1/5)*(-1 + 1/PH)*
R^2*(1 - x + x/PH))*(1 - \[Lambda]H) +
q*(1 - PH - (1/5)*(1 - PH)*(PH*(1 - x) + x))*\[Lambda]H + (1 -
q)*((-1 + 1/PL)*R - (1/5)*(-1 + 1/PL)*
R^2*(1 - x + x/PL))*(1 - \[Lambda]L) + (1 - q)*(1 -
PL - (1/5)*(1 - PL)*(PL*(1 - x) + x))*\[Lambda]L, x];
Just solving for a == 0 gives an even more complicated result:
In[4]:= a
Out[4]= (-1 + 1/PH) q R (1 - \[Lambda]H) +
1/5 (1 - 1/PH) q R^2 (1 - \[Lambda]H) + q \[Lambda]H -
PH q \[Lambda]H +
1/5 (-1 + PH) PH q \[Lambda]H + (-1 + 1/PL) (1 -
q) R (1 - \[Lambda]L) +
1/5 (1 - 1/PL) (1 - q) R^2 (1 - \[Lambda]L) + (1 - q) \[Lambda]L -
PL (1 - q) \[Lambda]L + 1/5 (-1 + PL) PL (1 - q) \[Lambda]L
In[5]:= Reduce[a == 0]
Out[5]= (PL q \[Lambda]H !=
0 && (PH ==
Root[5 PL q R - PL q R^2 - 5 PL q R \[Lambda]H +
PL q R^2 \[Lambda]H + (5 R - 5 PL R - 5 q R - R^2 + PL R^2 +
q R^2 + 5 PL q \[Lambda]H + 5 PL q R \[Lambda]H -
PL q R^2 \[Lambda]H + 5 PL \[Lambda]L -
6 PL^2 \[Lambda]L + PL^3 \[Lambda]L - 5 PL q \[Lambda]L +
6 PL^2 q \[Lambda]L - PL^3 q \[Lambda]L -
5 R \[Lambda]L + 5 PL R \[Lambda]L + 5 q R \[Lambda]L -
5 PL q R \[Lambda]L + R^2 \[Lambda]L - PL R^2 \[Lambda]L -
q R^2 \[Lambda]L + PL q R^2 \[Lambda]L) #1 -
6 PL q \[Lambda]H #1^2 + PL q \[Lambda]H #1^3 &, 1] ||
PH == Root[
5 PL q R - PL q R^2 - 5 PL q R \[Lambda]H +
PL q R^2 \[Lambda]H + (5 R - 5 PL R - 5 q R - R^2 + PL R^2 +
q R^2 + 5 PL q \[Lambda]H + 5 PL q R \[Lambda]H -
PL q R^2 \[Lambda]H + 5 PL \[Lambda]L -
6 PL^2 \[Lambda]L + PL^3 \[Lambda]L - 5 PL q \[Lambda]L +
6 PL^2 q \[Lambda]L - PL^3 q \[Lambda]L -
5 R \[Lambda]L + 5 PL R \[Lambda]L + 5 q R \[Lambda]L -
5 PL q R \[Lambda]L + R^2 \[Lambda]L - PL R^2 \[Lambda]L -
q R^2 \[Lambda]L + PL q R^2 \[Lambda]L) #1 -
6 PL q \[Lambda]H #1^2 + PL q \[Lambda]H #1^3 &, 2] ||
PH == Root[
5 PL q R - PL q R^2 - 5 PL q R \[Lambda]H +
PL q R^2 \[Lambda]H + (5 R - 5 PL R - 5 q R - R^2 + PL R^2 +
q R^2 + 5 PL q \[Lambda]H + 5 PL q R \[Lambda]H -
PL q R^2 \[Lambda]H + 5 PL \[Lambda]L -
6 PL^2 \[Lambda]L + PL^3 \[Lambda]L - 5 PL q \[Lambda]L +
6 PL^2 q \[Lambda]L - PL^3 q \[Lambda]L -
5 R \[Lambda]L + 5 PL R \[Lambda]L + 5 q R \[Lambda]L -
5 PL q R \[Lambda]L + R^2 \[Lambda]L - PL R^2 \[Lambda]L -
q R^2 \[Lambda]L + PL q R^2 \[Lambda]L) #1 -
6 PL q \[Lambda]H #1^2 + PL q \[Lambda]H #1^3 &, 3]) &&
PH != 0) || (q == 0 && \[Lambda]L !=
0 && (PL == 1 ||
PL == -((-5 \[Lambda]L +
Sqrt[\[Lambda]L] Sqrt[
20 R - 4 R^2 + 25 \[Lambda]L - 20 R \[Lambda]L +
4 R^2 \[Lambda]L])/(2 \[Lambda]L)) ||
PL == (5 \[Lambda]L +
Sqrt[\[Lambda]L] Sqrt[
20 R - 4 R^2 + 25 \[Lambda]L - 20 R \[Lambda]L +
4 R^2 \[Lambda]L])/(2 \[Lambda]L)) &&
PH PL \[Lambda]H != 0) || (\[Lambda]H == 0 &&
5 R - 5 PL R - 5 q R - R^2 + PL R^2 + q R^2 + 5 PL \[Lambda]L -
6 PL^2 \[Lambda]L + PL^3 \[Lambda]L - 5 PL q \[Lambda]L +
6 PL^2 q \[Lambda]L - PL^3 q \[Lambda]L - 5 R \[Lambda]L +
5 PL R \[Lambda]L + 5 q R \[Lambda]L - 5 PL q R \[Lambda]L +
R^2 \[Lambda]L - PL R^2 \[Lambda]L - q R^2 \[Lambda]L +
PL q R^2 \[Lambda]L != 0 &&
PH == (5 PL q R - PL q R^2)/(-5 R + 5 PL R + 5 q R + R^2 - PL R^2 -
q R^2 - 5 PL \[Lambda]L + 6 PL^2 \[Lambda]L -
PL^3 \[Lambda]L + 5 PL q \[Lambda]L - 6 PL^2 q \[Lambda]L +
PL^3 q \[Lambda]L + 5 R \[Lambda]L - 5 PL R \[Lambda]L -
5 q R \[Lambda]L + 5 PL q R \[Lambda]L - R^2 \[Lambda]L +
PL R^2 \[Lambda]L + q R^2 \[Lambda]L -
PL q R^2 \[Lambda]L) && -5 PL q R + PL q R^2 !=
0) || (\[Lambda]L == 0 && \[Lambda]H == 0 && (R == 0 || R == 5) &&
PH PL != 0) || (\[Lambda]L == 0 && (R == 0 || R == 5) && q == 0 &&
PH PL \[Lambda]H != 0) || (\[Lambda]H == 0 &&
q == 0 && \[Lambda]L !=
0 && (PL == 1 ||
PL == -((-5 \[Lambda]L +
Sqrt[\[Lambda]L] Sqrt[
20 R - 4 R^2 + 25 \[Lambda]L - 20 R \[Lambda]L +
4 R^2 \[Lambda]L])/(2 \[Lambda]L)) ||
PL == (5 \[Lambda]L +
Sqrt[\[Lambda]L] Sqrt[
20 R - 4 R^2 + 25 \[Lambda]L - 20 R \[Lambda]L +
4 R^2 \[Lambda]L])/(2 \[Lambda]L)) && -5 PH PL R +
PH PL R^2 != 0) || (\[Lambda]H ==
0 && (R == 0 || R == 5) && \[Lambda]L != 0 && q == 1 &&
PH PL != 0) || (\[Lambda]H ==
0 && (R == 0 || R == 5) && (-1 + q) \[Lambda]L !=
0 && (PL == 1 || PL == 5) && PH != 0) || (\[Lambda]L == 0 &&
q == 0 && (-5 + R) R != 0 && PL == 1 &&
PH \[Lambda]H != 0) || (\[Lambda]L == 0 && \[Lambda]H == 0 &&
q == 0 && PL == 1 && -5 PH R + PH R^2 != 0)
Seeing this it is not surprising that
Reduce[a == 0 && b == 0]
would take a very long time (in practice: hang).
This is the reason why Reduce never finishes.
While Mathematica can solve many problems automatically, this example illustrates well why we must not treat it as a magical black box that spits out solutions. It is still important to be aware of which problems are easy to compute and which are difficult, and then guide the system accordingly. I am saying this because I noticed that many students come to this site asking "why won't Mathematica solve this" without thinking of the difficulties of the problem, or considering how they would solve it by hand. They treat Mathematica as a magical solve-it-all system that we can't possibly understand. I think it is important not to encourage such an attitude in class. Instead, encourage them to treat Mathematica as a tool that takes care of the boring details of calculations, but understand that they must still be in charge.
This is why I think that it is not necessarily a good thing to just use a single command to solve any equation and always avoid dealing with the differences between Solve and Reduce.
Reduce[]also chokes. – J. M.'s missing motivation Nov 05 '15 at 21:26Reducegives.Reduce[a x + b == 0, x]->(b == 0 && a == 0) || (a != 0 && x == -(b/a)). Now useCoefficientListto see whataandbare for your equation. ... – Szabolcs Nov 07 '15 at 20:13Reduce[a==0](with your equation'sasubstituted in) gives a pretty complicated solution.Reduce[a==0 && b==0]is already hard enough to handle thatReducenever finishes. The solution: either don't use such complicated coefficients (i.e. useCoefficientListto see what they are then replace them with simple symbols), or useSolvewhich isn't so fussy about edge cases likea==0. As I understand, this is exactly why we have bothSolveandReduce. I wouldn't want to stick to only one of them just to make things look simpler in class. – Szabolcs Nov 07 '15 at 20:17a==0case: http://mathematica.stackexchange.com/questions/65624/a-one-line-proof-that-one-is-zero-using-mathematica-10 and all links in the sidebar. – Szabolcs Nov 07 '15 at 20:18