最小二乘估计matlab仿真
时间: 2023-10-18 08:06:00 浏览: 95
基于最小二乘估计的目标跟踪Matlab实现
最小二乘估计是一种常用的参数估计方法,在matlab中可以通过以下代码进行仿真:
```matlab
clear
clc
N = 100;
x = linspace(-5,5,N);
a0 = 2;
a1 = 3;
c = 5;
y = a0*x.^2 + a1*x + c;
ydata = y + 20*randn(1,N);
xmat = [ones(1,size(x,2));x;x.^2];
w = inv(xmat*xmat')*xmat*ydata';
y_fix_self = polyval(w,x);
P = polyfit(x,ydata,2);
y_fix = polyval(P,x);
plot(x,y);
hold on;
scatter(x,ydata);
hold on;
plot(x,y_fix);
hold on;
plot(x,y_fix_self);
legend('原方程','接收数据','内置拟合方程','自定拟合方程');
title('最小二乘估计');
```
以上代码首先生成了一个二次函数形式的原方程,并在其基础上加入了高斯噪声。接下来,利用最小二乘估计,通过拟合曲线的方式,从接收到的数据中估计出了曲线的系数。其中,`polyfit`函数是matlab自带的拟合函数,而通过`inv`函数求逆矩阵和`polyval`函数计算拟合曲线。
在图中,原方程用实线表示,接收到的数据用散点图表示,内置拟合方程用虚线表示,自定义拟合方程用虚线表示。
阅读全文