MathGroup Archive 2004

[Date Index] [Thread Index] [Author Index]

Search the Archive

Re: Exact real solutions of cubic equations

JonasB at wrote:
> Hello,
> I would like to find the _exact_ real roots of some cubic polynomials.
> Mathematica seems to have problems determining that a root is real
> Solve[1 + a s + b s^2 + s^3 == 0, s]
> results in three complex solutions for a = -4 and b = 3.

Granted, they look as if they _might_ not be real. But they are in fact
real, and Mathematica can tell you that. Just look at their imaginary

In[1]:= s /. Solve[1 - 4*s + 3*s^2 + s^3 == 0, s];
        Table[FullSimplify[Im[%[[i]]]], {i, 1, 3}]
Out[1]= {0, 0, 0}

> FullSimplify
> does not help, either it does nothing or it gets stuck, depending on the
> values of a and b.

I think you're wanting something which is theoretically impossible, namely,
to have the three real solutions expressed in terms of radicals using just
real numbers. It's been known for centuries that this cannot be done. This
situation is the _casus irreducibilis_. (For more information, do a Google
search for "casus irreducibilis".)

OTOH, the three real solutions can be expressed using just real numbers if
trig functions and their inverses are allowed. As an example, for
1 - 4*s + 3*s^2 + s^3 == 0, the three real solutions are given in the
following table:

In[2]:= Table[-1 + (-1)^(n + 1)*2*Sqrt[7/3]*Cos[(1/3)*(ArcCot[3*Sqrt[3]] +
              n*Pi)], {n, 0, 2}]
Out[2]= {-1 - 2*Sqrt[7/3]*Cos[(1/3)*ArcCot[3*Sqrt[3]]],
         -1 + 2*Sqrt[7/3]*Cos[(1/3)*(Pi + ArcCot[3*Sqrt[3]])],
         -1 - 2*Sqrt[7/3]*Cos[(1/3)*(2*Pi + ArcCot[3*Sqrt[3]])]}
In[3]:= N[%]
Out[3]= {-4.048917339522305, 0.35689586789220984, 0.6920214716300952}

David Cantrell

  • Prev by Date: Re: How to read a string from a file?
  • Next by Date: Re: One question about Diracdelta function
  • Previous by thread: Re: Exact real solutions of cubic equations
  • Next by thread: RE: Exact real solutions of cubic equations