前言 参考博文: 参考1参考书目知乎公式推导 关于递推最小二乘法,网上各种资料,让人莫衷一是,故整理其重要部分,述而不作,说的就是我了!最后附MATLAB代码,实测可用 概述 递推最小二乘法的引入(具体见知乎文章) 关键公式 递推公式如下所示(推导见参考书目46页或者知乎文章) MATLAB代码实现 function res = RLS(A,b,num,len) %num为辨识参数的个数,即A的列数 %len为数据的长度,即A的行数 %求解Ax=b %res为辨识的参数,即求解得到的x值 format long; x = rand(num,1); I = eye(num, num); P = (10^6) * I; for k = 1:len Ak = A(k,:); %新的数据行,即phi Q1 = P*(Ak'); %K(k)的分子 Q2 = 1 + Ak * P * (Ak'); %K(k)的分母 K = Q1/Q2; %更新K(k) x = x + K * (b(k) - Ak*x); %更新辨识的参数 P = (I - K*Ak)*P; %更新P thetae(:,k) = x; %记录每次计算的辨识参数 steps(k) = k; %记录当前步数(也可理解为当前用到的数据个数) end steps = steps'; res=thetae(:,end); for i = 1:num subplot(num,1,i) plot(steps, thetae(i,:)); end end