python 最小二乘法曲线拟合
时间: 2023-10-02 10:13:58 浏览: 118
pcir.rar_site:www.pudn.com_二乘法 曲线_最小 二乘法 曲线拟合_最小二乘_最小二乘法 c
最小二乘法是一种常用的曲线拟合方法,可以用于找到最优的曲线方程,使其能够最好地逼近给定的数据点。下面是一个使用Python实现最小二乘法曲线拟合的示例代码:
```python
import numpy as np
import matplotlib.pyplot as plt
# 生成示例数据
x = np.array([1, 2, 3, 4, 5])
y = np.array([2, 3, 5, 6, 8])
def least_squares_fit(x, y, degree):
# 构造矩阵X和向量Y
X = np.vander(x, degree + 1, increasing=True)
Y = y.reshape(len(y), 1)
# 使用最小二乘法公式计算拟合曲线的系数
theta = np.linalg.inv(X.T.dot(X)).dot(X.T).dot(Y)
# 根据系数计算拟合曲线上的点
x_fit = np.linspace(x.min(), x.max(), 100)
X_fit = np.vander(x_fit, degree + 1, increasing=True)
y_fit = X_fit.dot(theta)
return x_fit, y_fit
# 进行二次多项式拟合
degree = 2
x_fit, y_fit = least_squares_fit(x, y, degree)
# 绘制原始数据和拟合曲线
plt.scatter(x, y, label='Data')
plt.plot(x_fit, y_fit, label=f'{degree} Degree Fit')
plt.xlabel('x')
plt.ylabel('y')
plt.legend()
plt.show()
```
阅读全文