使用numpy函数的polyd()创建多项式:y=x^3+2x^2+3x+4并将该对象赋值给变量aPoly,求解该多项式的一阶导数bPoly和二阶导数cPoly。通过numpy的arange()函数创建数组X,作为直角坐标系的横轴,其取值范围是[-20,20]。在同一幅图上按列创建三个子图,分别绘制aPoly,bPoly,cPoly
import numpy as np
import matplotlib.pyplot as plt
'''
numpy.poly1d:一维多项式类
参数:
c_or_r:array_like
多项式的系数,以递减幂计算。
例如:
poly1d([1, 2, 3]) -> x^2 + 2x + 3
r:bool (可选)
变量:str 可选
'''
aPoly = np.poly1d([1,2,3,4])
#x^3+2x^2+3x+4
bPoly=aPoly.deriv(m=1)
#返回多项式的导数
cPoly = aPoly.deriv(m=2)
X= np.arange(-20,20)
Y1=aPoly(X)
Y2=bPoly(X)
Y3=cPoly(X)
plt.subplot(311)
plt.plot(X,Y1,"r-")
plt.xlabel("X")
plt.ylabel("Y1")
plt.title("Polynomial")
plt.subplot(312)
plt.plot(X,Y2,"go")
plt.xlabel("X")
plt.ylabel("Y2")
plt.title("First-order Derivative")
plt.subplot(313)
plt.plot(X,Y3,"b*")
plt.xlabel("X")
plt.ylabel("Y3")
plt.title("Seconde-order Derivative")
plt.show()
可视化:
参考: