matlab 最小二乘拟合直线
时间: 2024-12-31 07:41:32 浏览: 9
### 使用 MATLAB 实现最小二乘法进行直线拟合
在 MATLAB 中实现最小二乘法进行直线拟合可以通过多种方式完成。下面提供一种简单的方式,利用内置函数 `polyfit` 来执行线性回归分析。
#### 利用 polyfit 函数进行线性拟合
`polyfit(x,y,n)` 是一个用于多项式曲线拟合的函数,其中 `n=1` 表示一次多项式即直线拟合。此函数返回长度为 n+1 的向量 p,包含多项式的系数[^2]。
```matlab
% 假设已知数据点 (x, y)
x = [0.5 0.7 1.1 1.8 2.3];
y = [-0.9 -0.7 0.3 1.1 1.9];
% 执行一阶多项式拟合(也就是直线)
p = polyfit(x, y, 1);
% 输出斜率和截距
disp(['Slope: ', num2str(p(1))]);
disp(['Intercept: ', num2str(p(2))]);
% 绘制原始数据及其拟合后的直线
xfit = linspace(min(x), max(x));
yfit = polyval(p, xfit);
plot(x, y, 'o', xfit, yfit, '-');
xlabel('x values'), ylabel('y values');
title('Least Squares Fitting Line Example');
legend('Data Points','Fitted Line')
```
这段代码首先定义了一组测试数据 `(x, y)` ,接着调用了 `polyfit()` 对这些数据进行了线性拟合,并打印出了所求得的最佳匹配直线方程的参数——斜率与截距。最后绘制了原散点图及通过最小二乘法获得的最佳拟合直线图像。
阅读全文