第一种是进行多项式拟合,数学上可以证明,任意函数都可以表示为多项式形式。具体示例如下。
np.polyfit(x,y,n),n表示拟合的次数
>>> x
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
>>> y
[2, 4, 6, 8, 10, 12, 14, 16, 18, 20]
y=x^2+2 拟合实现
>>> f1=np.polyfit(x,y,1)#调用np.polyfit函数进行1拟合
>>> f1
array([2., 2.]) 左边第一个2是1次项的系数,左边数第二个2是0次项的系数
下面是二次拟合
>>> f2=np.polyfit(x,y,2)
>>> f2
array([9.12471731e-17, 2.00000000e+00, 2.00000000e+00])#可见,二次项为0,1次项,与o次项与1次拟合一致
下面通过拟合的函数计算拟合的值
也可使用yvals=np.polyval(f1, x)
yvals = p1(x) #拟合y值
>>> p1=np.poly1d(f1)
>>> p1
poly1d([2., 2.])
>>> yy=p1(x)
>>> yy
array([ 2., 4., 6., 8., 10., 12., 14., 16., 18., 20.])