⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 奇异值分解法向量投影证明.m

📁 SVD的应用
💻 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 + -