📄 奇异值分解法向量投影证明.m
字号:
clear all
clc
m=input('please iuput m number:')
n=input('please iuput n number:')
A=rand(m,n)% 随机矩阵A
r=rank(A);%求秩
[U,S,V]=svd(A);%SVD分解
[m,n]=size(A);%矩阵规模
S1=S(:,1:r-1);
S2=zeros(m,n-r+1);
S1=[S1 S2];%令原矩阵S最后一个奇异值为0的新矩阵S1
A1=U*S1*V';%由S1,U,V组成的新矩阵A1
r1=rank(A1);
sum=0;
z=null(A1')
z=z(:,1)
P1=z*z';%空间A1的法向量的投影矩阵
for i=1:n
b(:,i)=A(:,i);
a2=P1*b(:,i);
sum=norm(a2)+sum;
end
sum%向量xi在法向量上的投影之和
a=10000;%求a次随机情况
t=0;
j=2;
sum2(1)=0;
while(a~=0)
h=rand(m,1);% 随机向量h
h1=orth(h);%正交化
Ph=h1*h1';%任意一维向量的投影矩阵
for i=1:n
b(:,i)=A(:,i);
a2=Ph*b(:,i);
sum2(j)=norm(a2)+sum2(j-1);
end
x(j)=sum2(j);%A中每个向量xi在任意一维向量的投影之和
if(sum<sum2(j))
t=t+1;
end
sum2(j)=0;
j=j+1;
a=a-1;
end
t%若a=t,说明a次随机情况中sum是最小的
sum
u=2:j-2;
w=min(x(u))%A中每个向量xi在任意一维向量的投影之和的最小值
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -