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 =0$$ where, $a, b$, and $c$ are coefficient and real numbers and also $a \ne 0$ 0. If $a$ is equal to $0$ that equation is not valid quadratic equation.

## 1. Python Solve Quadratic Equation Using the Direct Formula

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

Let $\Delta =b^2-4ac$, then:

• If $b^2 – 4ac<0$, then roots are complex (not real).
• If $b^2 – 4ac=0$, then roots are real and both roots are same $x=\frac{-b}{2a}$.
• If $b^2 – 4ac>0$, then roots are real and different $$x=\frac{-b\pm\sqrt{b^2-4ac}}{2a}.$$
# Python program to find roots of quadratic equation
import math

# function for finding roots
def equationroots():

a = float(input('Enter coefficient a: '))
while a == 0:
print("Coefficient a can not equal 0")
a = float(input('Enter coefficient a: '))
b = float(input('Enter coefficient b: '))
c = float(input('Enter coefficient c: '))

# calculating dcriminant using formula
d = b * b - 4 * a * c

# checking condition for dcriminant
if d > 0:
print("Your equation has real and different roots:")
print((-b + math.sqrt(d))/(2 * a))
print((-b - math.sqrt(d))/(2 * a))

elif d == 0:
print("Your equation has real and same roots:")
print(-b / (2 * a))

# when dcriminant is less than 0
else:
print(- b / (2 * a), " +", math.sqrt(-d),'i')
print(- b / (2 * a), " -", math.sqrt(-d),'i')

equationroots()


## 2. Python Solve Quadratic Equation Using the Complex Math Module

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

cmath module — Mathematical functions for complex numbers — provides access to mathematical functions for complex numbers. The functions in this module accept integers, floating-point numbers or complex numbers as arguments. They will also accept any Python object that has either a __complex__() or a __float__() method: these methods are used to convert the object to a complex or floating-point number, respectively, and the function is then applied to the result of the conversion.

# Python program to find roots of quadratic equation
import cmath

# function for finding roots
def equationroots():

a = float(input('Enter coefficient a: '))
while a == 0:
print("Coefficient a can not equal 0")
a = float(input('Enter coefficient a: '))
b = float(input('Enter coefficient b: '))
c = float(input('Enter coefficient c: '))

# calculating dcriminant using formula
d = b * b - 4 * a * c

if d == 0:
print("Your equation has real and same roots:")
print(-b / (2 * a))

# when dcriminant is not equal 0
else: