Solver misses real solutions



>   Date: Sun, 13 Oct 2013 06:19:46 -0700
>   From: Joerg Rauh <jrgrauh at yahoo.com>
>
>   Dear Maxima Supporter,
>   out of wxMaxima 12.04.0 I had Maxima solve for x:
>   ((40-3*x)*(20-2*x)*x)/2-500
>   Here are the results:
>   [x=(-(sqrt(3)*%i)/2-1/2)*((250*sqrt(101)*%i)/3^(7/2)+25750/729)^(1/3)+(1300*((sqrt(3)*%i)/2-1/2))/(81*((250*sqrt(101)*%i)/3^(7/2)+25750/729)^(1/3))+70/9,
>   x=((sqrt(3)*%i)/2-1/2)*((250*sqrt(101)*%i)/3^(7/2)+25750/729)^(1/3)+(1300*(-(sqrt(3)*%i)/2-1/2))/(81*((250*sqrt(101)*%i)/3^(7/2)+25750/729)^(1/3))+70/9,
>   x=((250*sqrt(101)*%i)/3^(7/2)+25750/729)^(1/3)+1300/(81*((250*sqrt(101)*%i)/3^(7/2)+25750/729)^(1/3))
>
>   It missed the real results: x=1.7407 and x=6.23415, which I found here:
>   http://www.wolframalpha.com/input/?i=solve%28%28%2840-3*x%29%2F2%29*%2820-2*x%29*x-500%2Cx%29
>
>   Is there anything I can do differently to make it find the real solutions?
>   Thank you and kind regards

Here is an another idea: check Maxima produced the correct
roots. As you know, the fact that some complicated expression looks
like it is non-real does make it so.

(%i29) f(x) := ratsimp(((40-3*x)*(20-2*x)*x)/2-500)$

(%i30) solve(f(x),x);

(%o30) [x = (-sqrt(3)*%i/2-1/2)*(250*sqrt(101)*%i/3^(7/2)+25750/729)^(1/3)
          +1300*(sqrt(3)*%i/2-1/2)/(81*(250*sqrt(101)*%i/3^(7/2)+25750/729)
                                       ^(1/3))+70/9,
        x = (sqrt(3)*%i/2-1/2)*(250*sqrt(101)*%i/3^(7/2)+25750/729)^(1/3)
          +1300*(-sqrt(3)*%i/2-1/2)/(81*(250*sqrt(101)*%i/3^(7/2)+25750/729)
                                        ^(1/3))+70/9,
        x = (250*sqrt(101)*%i/3^(7/2)+25750/729)^(1/3)
          +1300/(81*(250*sqrt(101)*%i/3^(7/2)+25750/729)^(1/3))+70/9]

(%i31) map(lambda([t],f(rhs(t))), %);

(%o31) [0,0,0]

Leo