多項式函數是變量的整數次冥與系數的乘積之和,可以用下面的公式表示:

如果f(x) = 2x2 +x +1
a= np.array([2,1,1])
p = np.poly1d(a)
p
Out[78]: poly1d([2, 1, 1]) #等同於2*x2 + 1* x1 +1*x0 = 2x2 + x +1
print(p)
2 x2 + 1 x + 1
帶入值:
p([1,2,3])
Out[80]: array([ 4, 11, 22])
對poly1d( )對象進行加減乘除運算,相當於對應多項式函數進行計算,如:
- >>> p+[-2,1] #和p+np.poly1d([-2,1])相同,-2x+1 等於2x2 +x +1 -2x +1 = 2x2 -x +2
- Out[81]: poly1d([ 2, -1, 2])
- >>> p*p #兩個3次多項式相乘,得到一個6次多項式 等於(2x2 +x +1)2=4x4 + 4x3 +5x2+2x+1
- Out[82]:poly1d([4, 4, 5, 2, 1])
- >>> p/[1,1] #返回2個多項式除法的結果,分別為商式和余式
- Out[83]: (poly1d([ 2., -1.]), poly1d([ 2.])) (x+1)(2x-1)+2 = 2x2+x +1
- >>>
多項式對象的deriv( )和integ( )方法分別用於計算多項式函數的微分和積分,如:
p.deriv() #微分
Out[84]: poly1d([4, 1])
p.integ() #積分 integ(m=1,k= 0) m是積幾次分,k是常系數是多少
Out[85]: poly1d([ 0.66666667, 0.5 , 1. , 0. ])
多項式函數的根可以用roots( )計算:
np.roots(p)
Out[86]: array([-0.25+0.66143783j, -0.25-0.66143783j])
除了使用多項式對象外,還可以直接使用Numpy提供的多項式函數對多項式系數的數組進行運算,主要函數包括:np.poly, np.polyadd, np.polydiv, np.polyint, np.polysub, np.poly1d, np.polyder, np.polyfit, np.polymul, np.polyval等。
