zhushanjun11 发表于 2007-10-13 11:31

最小二乘递推算法出错,大家看看那

初学这个编程,果然不是天才,还希望高手指教!

%最小二乘法递推算法y(k)=-a1*y(k-1)-a2*y(k-2)-a3*y(k-3)+b1*u(k-1)+b2*u(k-2)+b3*u(k-3)%输入、输出数据clearu=y=%RLS递推最小二乘辨识
a0=;%直接给出被辨识参数的初始值,即一个充分小的实向量
p0=10^6*eye(6,6);%直接给出初始状态P0,即一个充分大的实数单位矩阵
a=;%被辨识参数矩阵的初始值及大小
for k=4:50; %开始求K
H=[-y(k-1),-y(k-2),-y(k-3),u(k-1),u(k-2),u(k-3)];
x=H'.*p0.*H+1;
x1=inv(x); %开始求K(k)
k1=p0.*H.*x1;%求出K的值
d1=y(k)-H'.*a0;
a1=c0+k1.*d1;%求被辨识参数a
e1=c1-c0;%求参数当前值与上一次的值的差值
a0=a1;%新获得的参数作为下一次递推的旧参数
a(:,k)=a1;%把辨识参数a 列向量加入辨识参数矩阵的最后一列
p1=p0-k1*k1'*;%求出 p(k)的值
p0=p1;%给下次用
end%小循环结束
end%大循环结束
a1=a(1),a2=a(2),a3=a(3)b1=a(4),b2=a(5),b3=a(6)

花如月 发表于 2007-10-13 14:30

我算是服了你,在matlab发过了。还跑这里发,我给你提的建议你也是一点都没听啊。完全原版照抄啊:lol

zhushanjun11 发表于 2007-10-13 15:32

不好意思,其实这两篇都是同一时间发的,抱着让更多的人看到的心理!刚才登陆上来,没有看到你在那篇里的建议,真是遗憾!
能不能再指教一下,谢谢了!

花如月 发表于 2007-10-13 16:04

原帖由 zhushanjun11 于 2007-10-13 15:32 发表 http://www.chinavib.com/forum/images/common/back.gif
不好意思,其实这两篇都是同一时间发的,抱着让更多的人看到的心理!刚才登陆上来,没有看到你在那篇里的建议,真是遗憾!
能不能再指教一下,谢谢了!
(1)既然出错就把出的是什么错误描述清楚
(2)发帖的时候如果没有特殊需要请用默认字体,加大字体对引起重视没多大关系
(3)重复发帖违反版规。
(4)如果对发帖的技巧和提问的技巧有疑问,建议看看matlab版区的置顶帖子。
希望楼主能够记住,不管是到了什么论坛什么版区。既然是求助,想得到帮助,就应该先看看相应的版规和已有的资源。熟悉下环境再下手,做到有的放矢。提高效率的同时也节省了你我的时间!

zh193 发表于 2007-10-27 12:55

求FOR算法程序

土坡稳定分析的优化算法(微粒群算法)的FORTRAN程序
QQ:94749918

风花雪月 发表于 2007-12-5 16:47

原帖由 zh193 于 2007-10-27 12:55 发表 http://www.chinavib.com/forum/images/common/back.gif
土坡稳定分析的优化算法(微粒群算法)的FORTRAN程序
QQ:94749918

这么具体的程序通常情况下只能自己写
页: [1]
查看完整版本: 最小二乘递推算法出错,大家看看那