最小二乘法拟合线段代码
时间: 2023-07-27 21:08:08 浏览: 149
简单的最小二乘拟合代码
当使用最小二乘法拟合一条直线时,可以使用以下代码实现:
```python
import numpy as np
def least_squares_fit(x, y):
n = len(x)
A = np.vstack([x, np.ones(n)]).T
m, c = np.linalg.lstsq(A, y, rcond=None)[0]
return m, c
# 示例数据
x = np.array([1, 2, 3, 4, 5])
y = np.array([2, 3, 4, 4, 5])
# 拟合直线
m, c = least_squares_fit(x, y)
# 输出斜率和截距
print("斜率:", m)
print("截距:", c)
```
这段代码使用了 `numpy` 库来进行矩阵运算和最小二乘法计算。首先,将 x 值和常数项构建为一个矩阵 A,然后使用 `numpy.linalg.lstsq` 函数来求解最小二乘解。最后,得到的斜率和截距即为拟合直线的参数。在示例数据中,输出的斜率为 0.7,截距为 1.4。
阅读全文