📄 multilinearbdurls.m
字号:
function [Xs r]=multiLinearBDURLS(x0,A,La,b,Lb)
%用多步线性迭代法求解一个非线性最小二乘问题
% (Regularized least squares problem with bounded data uncertainty)
% BDU RLS:
% J3=min max[||[A+e_A]*x-[b+e_b]||^2+p||x||^2]
% where e_A,e_b:the uncertainty,||e_A||<=La,||e_b||<=Lb
% J3=>J4=min[[||Ax-b||+La*||x||+Lb]^2+p||x||^2]
% solution:x=inv(A'*A+r*I)*A'*b
% r=La*||Ax-b||/||x||+p*||Ax-b||/(||Ax-b||+La*||x||+Lb)
% INPUT:
% x0: the initial estimate
% A,b: data
% La,Lb: the upper bound of the uncertainty of A and b
%
Niter=50;
Xs=x0';
x=x0;
p=0.1;
idMtr=eye(size(A,2));
for Iiter=1:Niter
norm1=(A*x)'*(A*x);
norm2=(x'*x);
r=La*norm1/norm2+p*norm1/(norm1+La*norm2+Lb);
x=inv(A'*A+r*idMtr)*A'*b;
Xs=[Xs;x'];
end
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -