三种实现矩阵QR分解的算法与程序
(2017-07-08 18:46:32)
标签:
矩阵分析qr分解矩阵分解 |
分类: 计算方法-算法与程序 |
To learn, to share, to debate, then comes progress.
--------------------------------------------------------------------------------------------------
QR分解
若非奇异矩阵A能够分解为一个正交矩阵Q与非奇异上三角矩阵R的乘积,即:
A=QR。则称其为A的QR分解。
1.基于Givens变换的QR分解
%***********************************************
%矩阵分析与应用-利用Givens变换实现矩阵的QR分解
%输入:A-NxN的矩阵
17.4
function [Q,R]=md_qrg(A)
% if size(A,1)~=size(A,2)
%
%
% end
[N,M]=size(A);
R=zeros(N);
T=eye(N);
B=A;
for j=1:N-1
%
end
R(j+1,j+1:end)=B(end,end);
Q=T';
2.基于Householder变换的QR分解
%***********************************************
%矩阵分析与应用-利用Householder变换实现矩阵的QR分解
%输入:A-NxN的矩阵
17.4
function [Q,R]=md_qrh(A)
[N,M]=size(A);
B=A;
R=zeros(M);
H=eye(N);
%apply Householder transform on every column of the matrix, the length
�creases by 1 each step
for j=1:M-1
end
R(j+1:end,j+1:end)=B(end,end);
Q=H';
%Householder transform matrix
function
[H]=hst(x)
xmod=sqrt(sum(x.*x));
alpha=-sign(x(1))*xmod;
x(1)=x(1)+alpha;
u=x/sqrt(sum(x.*x));
H=eye(length(x))-2*(u*u');
3.基于Schmidt正交化法的QR分解
%***********************************************
%矩阵分析与应用-利用Schmidt正交化实现矩阵的QR分解
%输入:A-NxN的矩阵
17.4
function [Q,R]=md_qrs(A)
[N,M]=size(A);
B=zeros(size(A));
Q=B;
C=eye(M);
B(:,1)=A(:,1);
for j=2:M
end
bmod=zeros(1,M);
for
j=1:M
end
R=diag(bmod)*C;