mihainan

Nan Mihai - Householder (Metode numerice)

Apr 11th, 2014
325
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
MatLab 0.59 KB | None | 0 0
  1. function [R,Q]=Householder(A)
  2. % HouseQR - descompunere QR a lui A cu reflexii Householder
  3.     [m,n]=size(A);
  4.     u=zeros(m,n);
  5.  
  6.     for k=1:n
  7.             x=A(k:m,k);
  8.             x(1)=semnul(x(1))*norm(x)+x(1);
  9.             u(k:m,k)=x/norm(x);
  10.             A(k:m,k:n)=A(k:m,k:n)-2*u(k:m,k)*(u (k:m,k)'*A(k:m,k:n));
  11.     endfor
  12.     R=triu(A(1:n,:));
  13.     if nargout==2
  14.             Q=eye(m,n);
  15.             for j=1:n
  16.                 for k=n:-1:1
  17.                         Q(k:m,j)=Q(k:m,j)-2*u(k:m,k)*(u (k:m,k)'*Q(k:m,j));
  18.                 endfor
  19.             endfor
  20.     endif
  21. endfunction
  22.  
  23. function y=semnul(x)
  24.     if x>=0
  25.             y=1;
  26.     else
  27.             y=-1;
  28.     endif
  29. endfunction
Advertisement
Add Comment
Please, Sign In to add comment