最小二乘直线拟合程序matlab
时间: 2023-09-06 10:10:06 浏览: 145
MATLAB-zxerchengfa.zip_拟合直线程序_最小二乘 拟合 Matlab
以下是使用 MATLAB 实现最小二乘直线拟合的示例程序:
```matlab
% 生成随机数据
x = 1:10;
y = 2*x + randn(1,10);
% 最小二乘直线拟合
A = [x' ones(size(x'))];
b = y';
p = A\b;
% 绘制原始数据和拟合直线
plot(x,y,'o',x,p(1)*x+p(2),'-')
legend('原始数据','拟合直线')
```
其中,`x` 和 `y` 分别表示输入数据的自变量和因变量,这里使用了一个简单的线性模型,即 $y = ax + b$,其中 $a$ 和 $b$ 分别表示斜率和截距。使用矩阵形式表示模型,我们可以构造如下的线性方程组:
$$
\begin{pmatrix}
x_1 & 1 \\
x_2 & 1 \\
\vdots & \vdots \\
x_n & 1
\end{pmatrix}
\begin{pmatrix}
a \\
b
\end{pmatrix}
=
\begin{pmatrix}
y_1 \\
y_2 \\
\vdots \\
y_n
\end{pmatrix}
$$
其中,$n$ 表示数据点的数量。我们可以使用 MATLAB 中的反斜杠运算符 `\` 求解该线性方程组,得到最小二乘解 $a$ 和 $b$。最后,我们可以使用 `plot` 函数绘制原始数据和拟合直线。
阅读全文