曲线拟合的最小二乘法用python实现
时间: 2024-12-08 22:11:21 浏览: 11
曲线拟合的最小二乘法是一种常用的数学优化技术,用于找到最佳拟合数据的曲线。它通过最小化数据点与拟合曲线之间的误差平方和来确定曲线的参数。下面是一个使用Python实现最小二乘法进行曲线拟合的示例:
```python
import numpy as np
import matplotlib.pyplot as plt
from scipy.optimize import curve_fit
# 定义拟合函数
def func(x, a, b, c):
return a * np.exp(b * x) + c
# 生成一些示例数据
xdata = np.linspace(0, 4, 50)
y = func(xdata, 2.5, 1.3, 0.5)
np.random.seed(1729)
y_noise = 0.2 * np.random.normal(size=xdata.size)
ydata = y + y_noise
# 使用curve_fit进行曲线拟合
popt, pcov = curve_fit(func, xdata, ydata)
print("拟合参数:", popt)
# 绘制结果
plt.figure()
plt.plot(xdata, ydata, 'b-', label='data')
plt.plot(xdata, func(xdata, *popt), 'r-', label='fit: a=%5.3f, b=%5.3f, c=%5.3f' % tuple(popt))
plt.xlabel('x')
plt.ylabel('y')
plt.legend()
plt.show()
```
在这个示例中,我们首先定义了一个拟合函数`func`,然后生成了一些示例数据,并添加了一些噪声。接下来,我们使用`scipy.optimize.curve_fit`函数进行曲线拟合,并打印出拟合参数。最后,我们绘制了原始数据和拟合曲线的图形。
阅读全文