Finding roots of equation



  • roots
  • zeros[1]
  • solutions of the equations[2]
  • x-intercepts


  • Newton method
  • "A useful way to visualize the roots of a complex function is to plot the 0 contours of the real and imaginary parts. That is, compute z = Dm(...) on a reasonably dense grid, and then use matplotlib's contour function to plot the contours where z.real is 0 and where z.imag is zero. The roots of the function are the points where these contours intersect." Warren Weckesser[3]




quadratic equationEdit

The quadratic formula for the roots of the general quadratic equation

A quadratic equation (from the Latin quadratus for "square") is any equation having the form


where x represents an unknown, and a, b, and c represent known numbers such that a is not equal to 0. If a = 0, then the equation is linear, not quadratic. The numbers a, b, and c are the coefficients of the equation, and may be distinguished by calling them, respectively, the quadratic coefficient, the linear coefficient and the constant or free term.[4]

Although the quadratic formula provides an exact solution, the result is not exact if real numbers are approximated during the computation, as usual in numerical analysis, where real numbers are approximated by floating point numbers (called "reals" in many programming languages). In this context, the quadratic formula is not completely numerical stable.[5]

This occurs when :

  • the roots have different order of magnitude, or, equivalently, when b2 and b2 − 4ac are close in magnitude. In this case, the subtraction of two nearly equal numbers will cause loss of significance or catastrophic cancellation in the smaller root. To avoid this, the root that is smaller in magnitude, r, can be computed as   where R is the root that is bigger in magnitude.
  • a second form of cancellation can occur between the terms b2 and 4ac of the discriminant, that is when the two roots are very close. This can lead to loss of up to half of correct significant figures in the roots.[6][7]

When the term inside the square root (the "Discriminant") goes negative, i.e.

   if (b*b - 4*a*c < 0 ):

then doesn't have real roots, but have complex roots. ( see square root of negative number)

square root of Negative or complex numberEdit

If S is negative real numnber :


then its principal square root is


If S is a complex number : S = a+bi where a and b are real and b ≠ 0,

then its principal square root ( = the root with the non-negative real part) is :


where :


is the absolute value (modulus) of S.

This can be verified by squaring the root.[8][9]

See alsoEdit


  1. Zero_of_a_function in wikipedia
  2. Equation_solving in wikipedia
  3. stackoverflow question : storing-roots-of-a-complex-function-in-an-array-in-scipy
  4. Protters & Morrey: " Calculus and Analytic Geometry. First Course"
  6. Kahan, Willian (November 20, 2004), On the Cost of Floating-Point Computation Without Extra-Precise Arithmetic
  7. Higham, Nicholas (2002), Accuracy and Stability of Numerical Algorithms (2nd ed.), SIAM, p. 10, ISBN 978-0-89871-521-7 
  8. Abramowitz, Miltonn; Stegun, Irene A. (1964). Handbook of mathematical functions with formulas, graphs, and mathematical tables. Courier Dover Publications. p. 17. ISBN 0-486-61272-4. , Section 3.7.26, p. 17
  9. Cooke, Roger (2008). Classical algebra: its nature, origins, and uses. John Wiley and Sons. p. 59. ISBN 0-470-25952-3. , Extract: page 59