Ask Your Question

Theo's profile - activity

2016-07-11 08:42:58 +0200 received badge  Famous Question (source)
2014-03-26 11:05:22 +0200 received badge  Notable Question (source)
2013-05-30 00:12:52 +0200 received badge  Popular Question (source)
2012-10-17 02:21:52 +0200 asked a question roots() returns no real solutions for cubic function

Hi there

I have a pretty complicated third-order polynomial which I use Sage to solve. However, somehow roots() only returns imaginary solutions. This should not be possible as a cubic function always has at least one root, so naturally I'm puzzled by this.

I could't seem to include all my code (formatting gets messed up). First I checked that the equation really is a polynomial in m:

print dldm.degree(m)

Outputs 3, so that's OK. Next, I obtain the roots, which I have printed below:

-0.000119434160296805 + 2.27373675443232e-12*I
-5395.14738658974 - 7.95807864051312e-13*I
2560.33896686341 - 1.36424205265939e-12*I

As you can see, they're all imaginary, which should not be possible. The imaginary part is very small on all the solutions. My guess is that Sage uses some numerical approximations to obtain the solutions which is why it seemingly violates mathematics. But what do you think? Thanks!