numpy.poly1d() in Python
The numpy.poly1d() function helps to define a polynomial function. It makes it easy to apply “natural operations” on polynomials.
Syntax: numpy.poly1d(arr, root, var)
Parameters :
arr : [array_like] The polynomial coefficients are given in decreasing order of powers. If the second parameter (root) is set to True then array values are the roots of the polynomial equation.root : [bool, optional] True means polynomial roots. Default is False.
var : variable like x, y, z that we need in polynomial [default is x].Arguments :
c : Polynomial coefficient.
coef : Polynomial coefficient.
coefficients : Polynomial coefficient.
order : Order or degree of polynomial.
o : Order or degree of polynomial.
r : Polynomial root.
roots : Polynomial root.Return: Polynomial and the operation applied
For example: poly1d(3, 2, 6) = 3x2 + 2x + 6
poly1d([1, 2, 3], True) = (x-1)(x-2)(x-3) = x3 – 6x2 + 11x -6
Code 1 : Explaining poly1d() and its argument
# Python code explaining # numpy.poly1d() # importing libraries import numpy as np # Constructing polynomial p1 = np.poly1d([ 1 , 2 ]) p2 = np.poly1d([ 4 , 9 , 5 , 4 ]) print ( "P1 : " , p1) print ( "\n p2 : \n" , p2) # Solve for x = 2 print ( "\n\np1 at x = 2 : " , p1( 2 )) print ( "p2 at x = 2 : " , p2( 2 )) # Finding Roots print ( "\n\nRoots of P1 : " , p1.r) print ( "Roots of P2 : " , p2.r) # Finding Coefficients print ( "\n\nCoefficients of P1 : " , p1.c) print ( "Coefficients of P2 : " , p2.coeffs) # Finding Order print ( "\n\nOrder / Degree of P1 : " , p1.o) print ( "Order / Degree of P2 : " , p2.order) |
Output :
P1 : 1 x + 2 p2 : 3 2 4 x + 9 x + 5 x + 4 p1 at x = 2 : 4 p2 at x = 2 : 82 Roots of P1 : [-2.] Roots of P2 : [-1.86738371+0.j -0.19130814+0.70633545j -0.19130814-0.70633545j] Coefficients of P1 : [1 2] Coefficients of P2 : [4 9 5 4] Order / Degree of P1 : 1 Order / Degree of P2 : 3
Code 2 : Basic mathematical operation on polynomial
# Python code explaining # numpy.poly1d() # importing libraries import numpy as np # Constructing polynomial p1 = np.poly1d([ 1 , 2 ]) p2 = np.poly1d([ 4 , 9 , 5 , 4 ]) print ( "P1 : " , p1) print ( "\n p2 : \n" , p2) print ( "\n\np1 ^ 2 : \n" , p1 * * 2 ) print ( "p2 ^ 2 : \n" , np.square(p2)) p3 = np.poly1d([ 1 , 2 ], variable = 'y' ) print ( "\n\np3 : " , p3) print ( "\n\np1 * p2 : \n" , p1 * p2) print ( "\nMultiplying two polynimials : \n" , np.poly1d([ 1 , - 1 ]) * np.poly1d([ 1 , - 2 ])) |
Output :
P1 : 1 x + 2 p2 : 3 2 4 x + 9 x + 5 x + 4 p1 ^ 2 : 2 1 x + 4 x + 4 p2 ^ 2 : [16 81 25 16] p3 : 1 y + 2 p1 * p2 : 4 3 2 4 x + 17 x + 23 x + 14 x + 8 Multiplying two polynimials : 2 1 x - 3 x + 2