solve(...) and unnecessary complex results



On Wed, Feb 20, 2008 at 9:32 PM,  <maxima-list at ssteiner.com> wrote:
> Dear Maxima experts,
>
>  If I make Maxima solve the following example equation it returns results which contain complex parts (%i) but I think the results should be "normal" real numbers.
>
>  Example: solve( (0=x^3-4*x+2), x );
>
>  Maxima returns:
>  [x = (-sqrt(3)*%i/2-1/2)*(3^-(3/2)*sqrt(37)*%i-1)^(1/3)+4*(sqrt(3)*%i/2-\
>  1/2)/(3*(3^-(3/2)*sqrt(37)*%i-1)^(1/3)),x = (sqrt(3)*%i/2-1/2)*(3^-(3/2)*sqrt(\
>  37)*%i-1)^(1/3)+4*(-sqrt(3)*%i/2-1/2)/(3*(3^-(3/2)*sqrt(37)*%i-1)^(1/3)),x = (\
>  3^-(3/2)*sqrt(37)*%i-1)^(1/3)+4/(3*(3^-(3/2)*sqrt(37)*%i-1)^(1/3))]
>
>  I think the correct results are -2,214; 0,539; 1,675
>  How to make Maxima return these results (real numbers) instead of complicated terms containing complex numbers?

You can also solve the problem numerically:

1. with plot2d identify small intervals containing the solutions;

2. use find_root to determine the numeric solutions.

Paul