## Python program to solve quadratic equation

Given a quadratic equation the task is solve the equation or find out the roots of the equation. Standard form of quadratic equation is –

ax^{2}+ bx + c where, a, b, and c are coefficient and real numbers and also a ≠ 0. If a is equal to 0 that equation is not valid quadratic equation.

**Examples:**

Input :a = 1, b = 2, c = 1Output :Roots are real and same -1.0Input :a = 2, b = 2, c = 1Output :Roots are complex -0.5 + i 2.0 -0.5 - i 2.0Input :a = 1, b = 10, c = -24Output :Roots are real and different 2.0 -12.0

**Method 1:** Using the direct formula

Using the below quadratic formula we can find the root of the quadratic equation.

There are following important cases.

If b*b < 4*a*c, then roots are complex (not real). For example roots of x2 + x + 1, roots are -0.5 + i1.73205 and -0.5 - i1.73205 If b*b == 4*a*c, then roots are real and both roots are same. For example, roots of x2 - 2x + 1 are 1 and 1 If b*b > 4*a*c, then roots are real and different. For example, roots of x2 - 7x - 12 are 3 and 4

`# Python program to find roots of quadratic equation` `import` `math ` ` ` ` ` `# function for finding roots` `def` `equationroots( a, b, c): ` ` ` ` ` `# calculating discriminant using formula` ` ` `dis ` `=` `b ` `*` `b ` `-` `4` `*` `a ` `*` `c ` ` ` `sqrt_val ` `=` `math.sqrt(` `abs` `(dis)) ` ` ` ` ` `# checking condition for discriminant` ` ` `if` `dis > ` `0` `: ` ` ` `print` `(` `" real and different roots "` `) ` ` ` `print` `((` `-` `b ` `+` `sqrt_val)` `/` `(` `2` `*` `a)) ` ` ` `print` `((` `-` `b ` `-` `sqrt_val)` `/` `(` `2` `*` `a)) ` ` ` ` ` `elif` `dis ` `=` `=` `0` `: ` ` ` `print` `(` `" real and same roots"` `) ` ` ` `print` `(` `-` `b ` `/` `(` `2` `*` `a)) ` ` ` ` ` `# when discriminant is less than 0` ` ` `else` `:` ` ` `print` `(` `"Complex Roots"` `) ` ` ` `print` `(` `-` `b ` `/` `(` `2` `*` `a), ` `" + i"` `, sqrt_val) ` ` ` `print` `(` `-` `b ` `/` `(` `2` `*` `a), ` `" - i"` `, sqrt_val) ` ` ` `# Driver Program ` `a ` `=` `1` `b ` `=` `10` `c ` `=` `-` `24` ` ` `# If a is 0, then incorrect equation` `if` `a ` `=` `=` `0` `: ` ` ` `print` `(` `"Input correct quadratic equation"` `) ` ` ` `else` `:` ` ` `equationroots(a, b, c)` |

**Output:**

real and different roots 2.0 -12.0

**Method 2:** Using the complex math module

First, we have to calculate the discriminant and then find two solution of quadratic equation using cmath module.

`# import complex math module` `import` `cmath` ` ` `a ` `=` `1` `b ` `=` `4` `c ` `=` `2` ` ` `# calculating the discriminant` `dis ` `=` `(b` `*` `*` `2` `) ` `-` `(` `4` `*` `a` `*` `c)` ` ` `# find two results` `ans1 ` `=` `(` `-` `b` `-` `cmath.sqrt(dis))` `/` `(` `2` `*` `a)` `ans2 ` `=` `(` `-` `b ` `+` `cmath.sqrt(dis))` `/` `(` `2` `*` `a)` ` ` `# printing the results` `print` `(` `'The roots are'` `)` `print` `(ans1)` `print` `(ans2)` |

**Output:**

The roots are (-3.414213562373095+0j) (-0.5857864376269049+0j)

Last Updated on November 13, 2021 by admin