24小时热门版块排行榜    

查看: 1571  |  回复: 7
当前主题已经存档。

cheer.up20

[交流] 【求助】递推极大似然法和递推最小二乘法的matlab编程

已知模型为Y=HX+V,其中V为测量误差,已知Y和H的20组测量值,求向量X.
现利用递推极大似然法和递推最小二乘法在matlab中编程实现,比较结果,谢谢,最好有程序。非常着急,请不吝赐教!
回复此楼

» 猜你喜欢

已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

string121

金虫 (小有名气)

cheer.up20(金币+10):太感谢了!好人一生平安 2010-03-24 20:53
cheer.up20(金币+5): 2010-03-24 20:56
迭代最小二乘 Matlab code :

Y=rand(20,1); % set Y.
H=rand(20,20);% set H.
X=zeros(size(Y));%initial value X_0.
dt=1.8/max(eig(H'*H)); % a time step parameter, 0 err_1=1e-3; % the stopping criterion.
err_2=100;
iter=0;
while err_2>err_1
X=X-dt*(H'*(H*X-Y)); %update X.
iter=iter+1;
err_2=sum((H*X-Y).^2); %compute the residuals
if mod(iter,1000)==1
fprintf(['Iteration %d: the residuals is %f\n'],iter,err_2); %display in the window.
end
end
fprintf('The algorithm is convereged at the %dth iteration  with residuals=%f\n',iter,err_2);

极大似然的话要有对V的分布假设。如果假设每次观测所产生的误差V是独立同高斯分布且方差已知,则极大似然得到的结果等同最小二乘(欧氏距离意义下)。
若假设V是其他分布,则结果与普通最小二乘有差异。要计算的话也很简单,写出对似然泛函的变分,将上述代码中的
H'*(H*X-Y)换成计算上述变分所得到的表达式即可。若V的分布比较特别,所产生的似然函数不是线性的,则上述迭代步长dt的选取不一定能保证迭代收敛。这时需要一些复杂一点的优化工具,例如线搜索。
2楼2010-03-24 18:46:16
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

cheer.up20

你好,请问下Y是二维向量,程序该如何变动

即多输入多输出线性系统的递归最小二乘参数辨识,谢谢
3楼2010-03-24 21:21:14
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

string121

金虫 (小有名气)


小木虫(金币+0.5):给个红包,谢谢回帖交流
cheer.up20(金币+10):谢谢,可否加你QQ435033488 2010-03-25 09:14
基本一样。
% problem: Y=HX+V.
%input:    Y--m*n
%              H--m*s
%output: X--s*n.
m=18;n=20;s=22;%set dimensions
Y=rand(m,n); % set Y.
H=rand(m,s);% set H.
X=zeros(s,n);%initial value X_0.
dt=1.8/max(eig(H'*H)); % a time step parameter, 0 err_1=1e-3; % the stopping criterion.
err_2=100;
iter=0;
while err_2>err_1
X=X-dt*(H'*(H*X-Y)); %update X.
iter=iter+1;
err_2=norm(H*X-Y,'fro'); %compute the residuals
if mod(iter,1000)==1
fprintf(['Iteration %d: the residuals is %f\n'],iter,err_2); %display in the window.
end
end
fprintf('The algorithm is convereged at the %dth iteration  with residuals=%f\n',iter,err_2);
4楼2010-03-24 21:54:29
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

cheer.up20

多维输出的递归相当于把Y和X都扩阶变成矩阵形式计算么?

如题,非常感谢。
5楼2010-03-24 22:47:18
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

string121

金虫 (小有名气)


小木虫(金币+0.5):给个红包,谢谢回帖交流
cheer.up20(金币+20):感谢你在百忙之中热心帮我编程 2010-03-27 09:40
引用回帖:
Originally posted by cheer.up20 at 2010-03-24 22:47:18:
如题,非常感谢。

我不知道你说的“多维输出的递归”是什么。
也许是专业不同,说法有差异吧。
但按我对你上面所描述问题的理解,
应该是这样的。
6楼2010-03-25 12:06:09
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

cheer.up20

我加你QQ了,可以在QQ上面聊么,很着急,谢谢
7楼2010-03-25 13:07:15
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

string121

金虫 (小有名气)


小木虫(金币+0.5):给个红包,谢谢回帖交流
引用回帖:
Originally posted by cheer.up20 at 2010-03-25 13:07:15:
我加你QQ了,可以在QQ上面聊么,很着急,谢谢

递推最小二乘的代码已发给你。对你的数据,结果比上面的好。
8楼2010-03-27 21:56:05
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 cheer.up20 的主题更新
普通表情 高级回复 (可上传附件)
信息提示
请填处理意见