一、实验内容
统计自己过去12个月实际生活花费的数值,并拟合成一条一次、二次、三次曲线,三条曲线分别用不同颜色和线型展示在同一张图里。
二、实验源程序及结果截图
#拟合多项式
import matplotlib.pyplot as plt
import numpy as np
# 需要拟合的数据组
x = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12]
y = [1659, 1500, 1900, 1954, 1869, 2155, 1567, 1200, 2066, 1895, 2005, 1699]
plt.plot(x,y,'.')
plt.rcParams['font.sans-serif'] = ['SimHei'] # 用来正常显示中文
plt.rcParams['axes.unicode_minus'] = False # 用来正常显示负号
z1 = np.polyfit(x, y, 1) #用1次多项式拟合
p1 = np.poly1d(z1) #使用次数合成多项式
y_pre1 = p1(x)
plt.plot(x,y_pre1,label='一次拟合')
z2 = np.polyfit(x, y, 2) #用2次多项式拟合
p2 = np.poly1d(z2)
y_pre2 = p2(x)
plt.plot(x,y_pre2,label='二次拟合')
z3 = np.polyfit(x, y, 3) #用3次多项式拟合
p3 = np.poly1d(z3)
y_pre3 = p3(x)
plt.plot(x,y_pre3,label='三次拟合')
plt.legend() # 显示label
plt.show()
三、实验的分析与思考(若有)
numpy库有自带的拟合函数可以调用,这再一次体现了python强大体现在库资源的丰富,具体的库名称,函数调用我们要熟悉,但是不用死记硬背,需要使用的时候能去使用就好。
拟合函数实际上是一种机器学习,使用sklearn库有更加专业的方法可供调用。