用python实现一个最小二乘法的拟合
时间: 2023-12-27 21:05:13 浏览: 75
最小二乘法是一种常见的数据拟合方法,可以用来拟合线性模型或非线性模型。下面是一个简单的用 Python 实现最小二乘法拟合线性模型的例子:
```python
import numpy as np
import matplotlib.pyplot as plt
# 生成数据
x = np.array([1, 2, 3, 4, 5])
y = np.array([1.2, 2.5, 3.7, 4.2, 5.1])
# 定义函数
def linear_fit(x, y):
n = len(x)
sum_x = sum(x)
sum_y = sum(y)
sum_xy = sum(x*y)
sum_x2 = sum(x**2)
a = (n*sum_xy - sum_x*sum_y) / (n*sum_x2 - sum_x**2)
b = (sum_y - a*sum_x) / n
return a, b
# 拟合数据
a, b = linear_fit(x, y)
# 绘制图像
plt.scatter(x, y)
plt.plot(x, a*x + b, color='red')
plt.show()
```
这个例子中,我们先生成了一些数据,然后定义了一个`linear_fit`函数,用于计算最小二乘法的系数。最后,我们用`plt.scatter`函数绘制了原始数据,用`plt.plot`函数绘制了拟合的直线。
需要注意的是,这里的代码只适用于线性模型的最小二乘法拟合。对于非线性模型的拟合,需要使用其他方法。
阅读全文