mirror of
https://github.com/kuhyx/WUT_Computer_Science.git
synced 2026-07-06 21:23:13 +02:00
25 lines
700 B
Matlab
25 lines
700 B
Matlab
%rozkład QR (waski) macierzy zmodyfikowanym alg. Grama-Schmidta dla
|
|
%macierzy mxn (m>=n) o pelnym rzedzie, rzeczywistej lub zespolonej
|
|
%na podstawie ksišzki prof. Tatjewskiego
|
|
function [Q,R] = qrZmodGS(A)
|
|
[m n] = size(A);
|
|
Q = zeros(m,n);
|
|
R = zeros(n,n);
|
|
d = zeros(1,n);
|
|
%rozkład A z kolumnami Q ortogonalnymi
|
|
for i=1:n
|
|
R(i,i)=1;
|
|
Q(:,i)=A(:,i);
|
|
d(i)=Q(:,i)'*Q(:,i);
|
|
for j=i+1:n
|
|
R(i,j)=(Q(:,i)'*A(:,j))/d(i);
|
|
A(:,j)=A(:,j)-R(i,j)*Q(:,i);
|
|
end
|
|
end
|
|
%normowanie rozkladu (kolumny Q ortogonalne)
|
|
for i=1:n
|
|
dd = norm(Q(:,i));
|
|
Q(:,i) = Q(:,i)/dd;
|
|
R(i,i:n) = R(i,i:n)*dd;
|
|
end
|
|
end |