直线拟合算法 代码实现
时间: 2024-09-12 14:00:47 浏览: 38
模型拟合算法代码实现.zip
直线拟合通常指的是通过一组数据点找到一条直线,使得该直线尽可能地接近所有数据点。最简单的是线性回归,其中数据点落在一条直线上,表示自变量和因变量之间存在线性关系。以下是使用Python的numpy库实现一个简单的二维线性拟合的例子,这里我们使用最小二乘法:
```python
import numpy as np
def linear_regression(X, Y):
# 计算均值
mean_x = np.mean(X)
mean_y = np.mean(Y)
# 移除均值
X = X - mean_x
Y = Y - mean_y
# 样本数
N = len(X)
# 权重矩阵
A = np.dot(X.T, X)
# 均方误差项
B = np.dot(X.T, Y)
# 求解线性方程组
m, c = np.linalg.solve(A, B)
# 添加原始均值
m = m * N + mean_y
c = c * N + mean_x
return m, c
# 示例数据
X = np.array([1, 2, 3, 4, 5])
Y = np.array([2, 4, 6, 8, 10])
slope, intercept = linear_regression(X, Y)
print(f"直线方程: y = {slope}x + {intercept}")
```
在这个例子中,`slope`是斜率,代表了因变量对自变量的变化速度,`intercept`是y轴截距。
阅读全文