b1.m

来自「通信工具箱matlab例程1。包含多个matlab实用例程程序。」· M 代码 · 共 34 行

M
34
字号
%求AX=B的总体最小二乘解
a=ones(50,25);
A=a+eye(50,25)*99;
b=ones(1,50)';
b(26)=100;
B=[-b,A]
[u,s,v]=svd(B);
   if s(24,24)-s(25,25)>10
         %(1)如果最小奇异值只有一个,则存在总体最小二乘解,p=1,
     V=v(:,26)
     v1=v(1,26)
     V(1,:)=[]
     X=V/v1
   end

%如果最小奇异值多重,则解不唯一,在最小范数约束条件下,得唯一的总体最小二乘解。
for i=1:25
   if s(i,i)-s(i+1,i+1)>1
      p=i
   end
end

V1=v(1:26,p+1:26)       %下用HOUSE变换
V11=V1(:,1)

v_k=get_h1(V11)

v_l1=v_k*(V1)
Xtls=v_l1(2:26,1)/v_l1(1,1)  %即得在最小范数约束条件下,得到总体最小二乘解。Xtls=y/a  (a=-1<0)
                             %由于得到的无需计算整个矩阵Q,只需求Q的第1列即可。



⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?