用python实现最小二乘法拟合曲线
时间: 2023-11-26 21:05:03 浏览: 82
基于最小二乘法实现数据曲线拟合含Matlab源码和报告.zip
Python可以使用NumPy和SciPy库来实现最小二乘法拟合曲线。具体步骤如下:
1. 导入NumPy和SciPy库。
2. 定义x和y数组,分别存储自变量和因变量的数据。
3. 使用polyfit函数进行拟合,该函数返回多项式系数。
4. 使用poly1d函数将多项式系数转换为多项式方程。
5. 使用plot函数绘制原始数据和拟合曲线。
代码示例:
```python
import numpy as np
from scipy.optimize import curve_fit
import matplotlib.pyplot as plt
# 定义拟合函数
def func(x, a, b, c):
return a * np.exp(-b * x) + c
# 定义x和y数组
x = np.linspace(0, 4, 50)
y = func(x, 2.5, 1.3, 0.5)
# 添加噪声
yn = y + 0.2 * np.random.normal(size=len(x))
# 使用curve_fit函数进行拟合
popt, pcov = curve_fit(func, x, yn)
# 使用poly1d函数将多项式系数转换为多项式方程
f = np.poly1d(popt)
# 绘制原始数据和拟合曲线
plt.plot(x, yn, 'bo', label='Original Data')
plt.plot(x, f(x), 'r-', label='Fitted Curve')
plt.legend()
plt.show()
```
阅读全文