A polynomial equation is an equation of the form ax^n + bx^(n-1) + cx^(n-2) + … + dx + e = 0, where a, b, c, d, and e are constants and x is the variable. The solutions to a polynomial equation are the values of x that make the equation true.

One common method for solving a polynomial equation is factoring. Factoring involves finding common factors of the terms on both sides of the equation and canceling them out. For example, if we have the equation x^2 + 3x – 10 = 0, we can factor it as (x – 2)(x + 5) = 0. This gives us the solutions x = 2 and x = -5.
Another method for solving a polynomial equation is using the quadratic formula. The quadratic formula is a specific formula that can be used to find the solutions of a quadratic equation, which is a polynomial equation of the form ax^2 + bx + c = 0. The quadratic formula is: x = (-b +- sqrt(b^2 – 4ac)) / 2a
You can use python’s cmath
library to solve polynomial equation with python
import cmath
def solve_polynomial(a, b, c):
# calculate the discriminant
disc = cmath.sqrt(b**2 - 4*a*c)
# find two solutions
sol1 = (-b + disc) / (2 * a)
sol2 = (-b - disc) / (2 * a)
return sol1, sol2
a = 1
b = -5
c = 6
solutions = solve_polynomial(a, b, c)
print(solutions)
This code will give you the two solutions of the equation ax^2 + bx + c = 0
Another method to solve polynomial equation is by using numpy.roots()
which returns the roots of a polynomial with coefficients given in decreasing order (highest-order term first).
import numpy as np
coefficients = [1,-5,6]
print(np.roots(coefficients))
You can also use Sympy library to solve polynomial equation which has a solve()
function that can be used to find the solutions of a polynomial equation.
from sympy import symbols, Eq, solve
x = symbols('x')
eq = Eq(x**2 - 5*x + 6)
solutions = solve(eq)
print(solutions)
Please note that these are just examples and you can adjust them to suit the polynomial equation you want to solve.
Example for High-order polynomial
A high-order polynomial is a polynomial with a degree (the highest exponent of the variable) that is greater than 2. Here are a few examples of high-order polynomials:
- A cubic polynomial: x^3 + 3x^2 – 7x + 2 = 0
- A quartic polynomial: x^4 – 4x^3 + 6x^2 – 4x + 1 = 0
- A quintic polynomial: x^5 + x^4 – 5x^3 – x^2 + 5x + 1 = 0
- A sextic polynomial: x^6 – x^5 + 3x^4 – 2x^3 + 3x^2 – x + 1 = 0
- A septic polynomial: x^7 + x^6 – 7x^5 – x^4 + 7x^3 + x^2 – 7x – 1 = 0
Solving high-order polynomials can be more difficult than solving lower-order polynomials, and in some cases, it may not be possible to find an exact solution. However, various numerical methods can be used to approximate solutions.
It’s worth noting that when the degree of polynomial is greater than 4 it’s not possible to find an exact solution in term of radicals.
Solve cubic polynomial
Here’s an example of how you can use Python to solve a cubic polynomial equation:
Copy codeimport numpy as np coefficients = [1, 3, -7, 2] solutions = np.roots(coefficients)print(solutions)
This code uses the numpy.roots()
function to find the solutions of the equation x^3 + 3x^2 – 7x + 2 = 0. The solutions are returned in an array, and can be complex numbers if the polynomial has complex roots.
Solve Quartic polynomial
Here’s an example of how you can use Python to solve a quartic polynomial equation:
Copy codefrom sympy import symbols, Eq, solve x = symbols('x') eq = Eq(x**4 - 4*x**3 + 6*x**2 - 4*x + 1) solutions = solve(eq) print(solutions)
This code uses the sympy.solve()
function to find the solutions of the equation x^4 – 4x^3 + 6x^2 – 4x + 1 = 0.
Solve Sextic polynomial
For the sextic polynomial, it’s not possible to find an exact solution, so you can use numerical method like newton Raphson method to find an approximate solution.
Copy codeimport numpy as np def f(x): return x**6 - x**5 + 3*x**4 - 2*x**3 + 3*x**2 - x + 1 deff_prime(x): return 6*x**5 - 5*x**4 + 12*x**3 - 6*x**2 + 6*x - 1 x = np.linspace(-2, 2, 100) solution = newton(f, f_prime, x0=0.5) print(solution)
This code uses the scipy.optimize.newton()
function to find the approximate solution of the equation x^6 – x^5 + 3x^4 – 2x^3 + 3x^2 – x + 1 = 0.
Please note that these are just examples and you can adjust them to suit the high-order polynomial equation you want to solve.
Solve Quintic polynomial
here’s an example of how you can use Python to solve a quintic polynomial equation:
Copy codeimport scipy.optimize as opt def quintic_polynomial(x): return x**5 + x**4 - 5*x**3 - x**2 + 5*x + 1 solution = opt.root(quintic_polynomial, [1,1,1,1,1,1]) print(solution.x)
This code uses the scipy.optimize.root()
function to find the root of the quintic polynomial equation x^5 + x^4 – 5x^3 – x^2 + 5x + 1 = 0. The function takes the polynomial function as the first argument and initial guess as the second argument. The result is returned in the form of an object that contains the root and other information about the solution.
Solve Septic Polynomial
Here’s an example of how you can use Python to solve a septic polynomial equation:
Copy codefrom scipy.optimize import fsolve def septic_polynomial(x): return x**7 + x**6 - 7*x**5 - x**4 + 7*x**3 + x**2 - 7*x - 1 initial_guess = [1,1,1,1,1,1,1,1] solution = fsolve(septic_polynomial, initial_guess) print(solution)
This code uses the scipy.optimize.fsolve()
function to find the root of the septic polynomial equation x^7 + x^6 – 7x^5 – x^4 + 7x^3 + x^2 – 7x – 1 = 0. The function takes the polynomial function as the first argument and initial guess as the second argument.
You can also use the scipy.optimize.newton_krylov()
to find the solution of high order polynomial equations, this method uses Krylov approximation to find the root of the polynomial equation.
Copy codefrom scipy.optimize import newton_krylov def polynomial(x): return x**7 + x**6 - 7*x**5 - x**4 + 7*x**3 + x**2 - 7*x - 1 solution = newton_krylov(polynomial, [1,1,1,1,1,1,1,1])print(solution)
These codes are just examples, you can adjust them to suit the high-order polynomial equation you want to solve. Also, keep in mind that solving high-order polynomials can be very difficult and sometimes it may not be possible to find an exact solution.