资源简介
对于矩阵A,根据不同的参数number实现不同方法的矩阵分解:高斯消元法的LU分解,基于Gram-Schmidt、Householder、Givens 的QR分解

代码片段和文件信息
function [QR]=Reduction(Anumber)
if number==1
[QR]=LUcomposition(A);
elseif number==2
[QR] = GramSchmidt(A);
elseif number==3
[QR] = HouseHolder(A);
elseif number==4
[QR]=Givens(A);
elseif error(‘not valid number‘);
end
end
function [LU]=LUcomposition(A) %A=[2 2 2;4 7 7;6 18 22] A=[10 20 30;20 45 80;30 80 171]
B=A;
[mn]=size(A);
if m~=n
error(‘不是方阵!‘);
end
if rank(A)~=n
error(‘奇异矩阵无法进行LU分解!‘); %检测参数异常停止程序
end
L=eye(n);
for i=1:n-1
if abs(A(ii)) disp(‘zero pivot encountered--use PA=LU ‘);
[LU]=partialLUDecomposition(Bn);
return;
end
for j=i+1:n
L(ji)=A(ji)/A(ii);
A(j:)=A(j:)-(A(ji)/A(ii))*A(i:);
end
end
U=A;
disp(‘-----LU Reduction----- ‘);
end
function [LU]=partialLUDecomposition(Am) % A=[1 2 -3 4;4 8 12 -8;2 3 2 1;-3 -1 1 -4]
L=zeros(m);
P=eye(m);
for i=1:m-1
index=find(abs(A(i:mi))==max(abs(A(i:mi))));
k=index+i-1;
if k~=i
L([i k]:)=L([k i]:);
A([i k]:)=A([k i]:);
P([i k]:)=P([k i]:);
end
for j=i+1:m
L(ji)=A(ji)/A(ii);
A(j:)=A(j:)-(A(ji)/A(ii))*A(i:);
end
end
U=A;
L=L+eye(m);
disp(‘--partial LU Reduction---‘);
end
% 对m*n维的矩阵A具有线性无关列,进行基于Gram-Schmidt的QR分解:A=QR,其中Q为m*n维正交矩阵,R为n*n维上三角矩阵且对角线元素大于0
function [QR] =GramSchmidt(A) %A=[0 -20 -14;3 27 -4;4 11 -2]
[m n] = size(A);
if rank(A)~=n
error(‘该矩阵无法进行进行基于Gram-Schmidt的QR分解!‘); %检测参数异常停止程序
end
Q = zeros( m n );
R = zeros( n n );
R(11)= norm( A( : 1) );
Q(: 1) = A( : 1)/R( 1 1 );
for k = 2: n
for j = 1: k - 1
R( j k ) = Q( : j )‘ * A( : k);
end
q = zeros( m 1 );
for j = 1: k - 1
q = Q( : j) * R( j k ) + q;
end
R( k k ) = norm( A( : k ) - q );
Q( : k ) = ( A( : k) - q ) / R( k k );
end
disp(‘---Gram-Schmidt Reduction---‘);
end
%%houseHolder进行QR分解
function [QR]=HouseHolder(A)
[m n] = size(A); % m- number of rows n- number of columns
if m > n
num = n;%the number of housholder matrix
else
num = m - 1;
end
a=A;
for i=1:num
if i==1
u=a(:1)-norm(a(:1))*eye(m1);
R=eye(m)-2*(u*u‘)/(u‘*u);
Q=R;
R=R*A;
fR=R;
else
a=R(i:mi:n);
u=a(:1)-norm(a(:1))*eye(m-i+11);
R1=eye(m-i+1)-2*(u*u‘)/(u‘*u);
R=[eye(i-1) zeros(i-1m-i+1);zeros(m-i+1i-1)R1];
Q=Q*R;
R=R*fR;
fR=R;
end
end
disp(‘------Householder Reduction------‘);
end
function [QR]=Givens(A)%A是
[mn]=size(A); %m行数n列数 A=[1 19 -34;-2 -5 20;2 8 37]
R=A;
Q=eye(m);
for i=1:n-1
for j=i+1:m
x=R(:i);
G=givensmatrix(xij);
%Q=Q*G‘;
Q=G*Q;
R=G*R;
end
end
Q=Q‘;
disp(‘----Givens Reduction----‘);
end
function G=givensmatrix(xij)
xi=x(i);
xj=x(j);
r=sqrt(xi^2+xj^2);
c=x
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 3187 2018-12-26 00:16 矩阵分解\Reduction.m
文件 43759 2018-12-26 00:36 矩阵分解\说明文档.docx
相关资源
- 中科大首次实现全光量子中继
- 矩阵分析-经典教材-中文版-Roger.A.Ho
- 国科大矩阵分析考题整理
- 中科大软院软件测试3
- 中科大软院软侧实验1
- 2-数理统计学教程陈希孺编著2009中科
- 概率论与数理统计陈希孺编著2009中科
- 中科大信号与系统辅导课笔记
- 2.5 SDNv2.pdf-中科大高级计算机网络课件
- 华中科大组成原理课件
- 中科大834考研微机原理与接口技术周
- 多速率数字信号处理_中科大
- 中科大2019智能控制考试试卷.docx
- 近世代数引论(第3版) 冯克勤 李尚
- 矩阵分析第三版史荣昌 课后习题答案
- 中科大多速率数字信号处理课件及作
- 中科大历年软件工程考研真题
- 矩阵分析第三版 史荣昌-高清版
- 矩阵分析引论罗家洪、方卫东,第四
- 矩阵分析--复习资料
- 中科大计算机模式识别读书报告作业
- 偏微分方程:第二版_中科大_陈祖墀编
- CSAPP课件-中科大
- 软件体系结构作业和答案 2019级中科大
- 中科大算法导论期末考试试卷
- 中科大密码学
- 华中科大先进光通信系统课件
- 矩阵分析课后答案,作者魏丰,史荣
- 矩阵分析教材
- 中科大并行计算经典课件
评论
共有 条评论