python拟合曲线 最小二乘法
时间: 2023-10-07 19:13:18 浏览: 135
基于最小二乘法对龙格函数作三次曲线拟合在python中的实现.docx
在Python中,可以使用NumPy库中的polyfit函数来进行最小二乘法拟合曲线。首先,根据给定的数据点(x, y),使用polyfit方法来拟合曲线,可以选择多项式的阶数。然后,使用poly1d方法得到拟合多项式的系数,按照阶数由高到低排列。最后,可以使用拟合多项式计算对应x值的拟合函数值,并绘制出原始数据散点和拟合曲线的图像。
下面是一个示例代码:
import matplotlib.pyplot as plt
import numpy as np
# 准备数据,将(x, y)坐标点输入
x = np.arange(80, 92, 2) # x = 80, 82, 84, 86, 88, 90
y = np.array([90, 84, 83, 80, 75, 68])
# 使用polyfit方法拟合,选择多项式,这里先使用2次方程
z1 = np.polyfit(x, y, 2)
# 使用poly1d方法获得多项式系数,按照阶数由高到低排列
p1 = np.poly1d(z1)
# 在屏幕上打印拟合多项式
print(p1)
# 求对应x的各项拟合函数值
fx = p1(x)
# 绘制坐标系散点数据及拟合曲线图
plot1 = plt.plot(x, y, '*', label='origin data')
plot2 = plt.plot(x, fx, 'r', label='polyfit data')
plt.xlabel('x-price')
plt.ylabel('y-amount')
plt.legend(loc=4) # 指定legend的位置, 类似象限的位置
plt.title('polyfit')
plt.show()
plt.savefig('polyfit.png')
通过这段代码,我们可以得到拟合出来的二次方程,并将拟合曲线和原始数据散点一起绘制出来。需要注意的是,拟合曲线可能不能完全贴合散点数据。
阅读全文