QR分解
目标
实现矩阵的QR分解
代码
function [Q,R] = QRdecom(A)
%QRdecom: 对矩阵进行QR分解
% Input: A用于分解
% Output:Q单位正交阵
% :R上三角矩阵
[n,~] = size(A);
Ht = eye(n);
R = A;
for i = 1:n-1
H = zeros(n,n);
si = zeros(n+1-i,1);
b = R((i:n),i)
si(1) = norm(b);
u = b+si
bete = 0.5*(norm(u))^2;
for k = 1:i
H(k,k) = 1;
end
T = eye(n+1-i)-(1/bete)*u*u';
for j = 1:n+1-i
for k = 1:n+1-i
H(i+j-1,i+k-1) = T(j,k)
end
end
Ht = Ht*H
R = H*R
end
Q = Ht;
end
实现过程
输入参数:
结果如下:
实现成功