《矩阵论引论》田振际——P78-例3.6-矩阵的奇异值分解1

本文深入探讨了矩阵的奇异值分解(SVD),通过实例详细解析了奇异值分解的过程,并提供了MATLAB实现代码,帮助读者理解并掌握这一重要数学工具。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1 问题描述

奇异值分解涉及大量重复性计算,为了提高效率,将计算部分用Matlab实现,具体见代码:

2 程序及算例

clear
clc
disp('矩阵')
% format rat  %为了便于观察,可以采用分数形式,‘0’的分数形式是‘*’
% 例1
% A=[1 0 0;2 0 0];
% 例2
% A=[1 0;0 1;1 1]
%例3
% A=[1 0 1;0 1 1;1 1 2]
%例4
A=[1 0 1;0 1 1;0 0 0]
disp('可以求得,矩阵B=A^H*A,即')
B=A'*A
disp('B的特征值为:')
[X TZZ]=eig(B);
TZZ=eig(B)'
disp('特征值对应的特征向量依次为:')
X
Q1=[];
Q2=[];
for i=1:length(X)
    if TZZ(i)>0
        Q1=[Q1 X(:,i)];
    else
        Q2=[Q2 X(:,i)];
    end
end
disp('特征值大于0的特征向量集合:')
Q1
disp('特征值等于0的特征向量集合:')
Q2
disp('所以:')
Q=[Q1 Q2]
D=diag(sqrt((TZZ(TZZ>0))))
P1=A*Q1*inv(D)
disp('构造')
P2=ones(size(P1,1),1);
P=[P1 P2]
[H L]=size(A);
[h l]=size(D);
if l<L
    D(:,l+1:L)=0;
end
if h<H 
    D(h+1:H,:)=0
end
FJ_qy=P*D*Q'           %奇异值分解
A
format
wucha=max(max(FJ_qy-A))


3.奇异值分解计算过程

矩阵

A =

     1     0     1
     0     1 
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值