Finding Solutions to a Cubic Equation with Multiple Roots

  • Context: Undergrad 
  • Thread starter Thread starter Big-Daddy
  • Start date Start date
  • Tags Tags
    Cubic
Join the discussion
Ask a follow-up here, or get your own question answered by working scientists, mathematicians and engineers — people, not an autocomplete.
Real named experts · corrections over time · the nuance an AI answer skips
3 replies · 3K views
Big-Daddy
Messages
333
Reaction score
1
I'm finding it hard to find the solutions to this cubic equation:

1/2 x^3 - 2.025647693*10^14 x^2 + 8.102590772*10^11 x - 8.102590772*10^8 = 0

I'm looking for the smallest real positive solution but no matter what solver I use I keep getting only one root (the one of order of magnitude 10^14). There should be a root of the order of 10-3 but I don't know how to find it, nor why my usually trusty solvers are giving only 1 root.
 
Mathematics news on Phys.org
You are probably using the Newton-Rhapson algorithm. This algorithm is used to solve ##f(x)=0## for various functions. It works by taking an initial guess and then recursively refine the guess.

Not all guesses work however. So the question is to find out what the best guess is and whether there are good guesses at all!

We have the following: http://en.wikipedia.org/wiki/Newton-Rhapson#Analysis

So if ##\alpha## is your root and if ##f^\prime(\alpha)## is nonzero, then there are good initial guesses. However, this is exactly what goes wrong here! The root ##\alpha## that you seek does have ##f^\prime(\alpha)=0##. This is why no initial guess will work and why you didn't find the solution.

There are other ways to find the solution though. It is hardly practical in many cases, but the rational root theorem works here. Either way, wolfram alpha could find the root: http://www.wolframalpha.com/input/?...x^2+++8.102590772*10^11+x+-+8.102590772*10^8+
and it's a very pretty root too!
 
^Yes
one thing you can do without changing to a different method is to solve
f'(x)=0
3/2 x^2 - 2*2.025647693*10^14 x + 8.102590772*10^11 = 0
if f'(x)=0 and f(x)=0 then x is a double root of f