• 大小: 2KB
    文件类型: .m
    金币: 1
    下载: 0 次
    发布日期: 2021-05-28
  • 语言: Matlab
  • 标签: 最小二乘  递推  

资源简介

此Matlab文件为最小二乘的递推算法,可根据需要,修改其中部分代码

资源截图

代码片段和文件信息

%% 最小二乘估计的递推算法
    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(‘请输入 递推起始项: \n‘‘s‘);
    j = str2double(j);
    n = length(H(:1));    % 计算观测次数n
    d = length(H(1:));    % 计算观测矩阵H有几列(辨识参数的个数)
    % 从第0项递推,先给出P0和sita0的初始值
    if(j==0)
        P0 = 1e6*eye(d);
        sita0 = 0.001*ones(d1);
        sita(:1) = sita0;
    % 从非零项开始递推,先把前面的j项进行批处理,之后开始递推
    else
        B0 = H(1:j:)‘*H(1:j:);
      

评论

共有 条评论