資源簡介
此Matlab文件為最小二乘的遞推算法,可根據(jù)需要,修改其中部分代碼
代碼片段和文件信息
%%?最小二乘估計(jì)的遞推算法
????clear?all
????clc
%%?生成觀測矩陣H?觀測矢量Y?
%?dVx?=?a11*Vx+a12*Vy+a13*Wz+a14*B1+a15*sita;
????a11?=-12.408;
????a12?=?-6.8837;
????a13?=?-0.092;
????a14?=?1.4103;
????a15?=?1.2573;
????Vx?=?(0.5:0.5:100)‘.^1.1;
????Vy?=?(20:0.5:119.5)‘;
????Wz?=?(10.05:-0.05:0.1)‘.\2;
????B1?=?(2:0.8:161.2)‘;
????sita?=?rand(2001);
????H?=?[Vx?Vy?Wz?B1?sita];
????Y?=?H*[a11;a12;a13;a14;a15]+rand(2001)/1000;
????a=inv(H‘*H)*H‘*Y;
????clear?sita
%%?遞推過程
????j?=?input(‘請輸入?遞推起始項(xiàng):?\n‘‘s‘);
????j?=?str2double(j);
????n?=?length(H(:1));????%?計(jì)算觀測次數(shù)n
????d?=?length(H(1:));????%?計(jì)算觀測矩陣H有幾列(辨識參數(shù)的個(gè)數(shù))
????%?從第0項(xiàng)遞推,先給出P0和sita0的初始值
????if(j==0)
????????P0?=?1e6*eye(d);
????????sita0?=?0.001*ones(d1);
????????sita(:1)?=?sita0;
????%?從非零項(xiàng)開始遞推,先把前面的j項(xiàng)進(jìn)行批處理,之后開始遞推
????else
????????B0?=?H(1:j:)‘*H(1:j:);
??????
- 上一篇:BBS論壇.mdl
- 下一篇:matlab提取圓形
評論
共有 條評論