Householder Reflection QR=A
61 次查看(过去 30 天)
显示 更早的评论
function [Q,R] = househ(A)
%QR-Zerlegung mit Householder
[m,n]=size(A);
Q = eye(m);
D = eye(m);
p = min(m-1,n);
for k=1:p
%untermatrix erstellen / define sub-matrix
x = A(:,k);
if k == 1
x = A(:,k);
elseif k <= p
for i = 1:(k-1)
x(i) = 0;
end
else
continue
end
%Formeln aus dem Buch / equation of the book
a = -sign(A(k,k))*norm(x);
v = x - a*D(:,k);
H = D-2*(v*v')/(v'*v);
% ---------------------------------
if k == 1
Q=H;
else
Q = Q*H;
end
A=H*A;
end
A(find(A==-0))=0; % unnecessary
R=A;
Q=Q';
end
Here u can see my Householder transformation. The Code under the hyphens is wrong but I don´t know why ... can someone help me.
回答(1 个)
Monisha Nalluru
2020-9-18
Refer to this blog post which explains on Household Refelection and Household QR factorization with sample code for understanding.
0 个评论
另请参阅
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!