%%%------------------------------- item (1) ---------------------------------%%% function [Q R] = qr_gsc(A) n = size(A,1); % determina o tamanho de A Q(:,1) = A(:,1)/norm(A(:,1)); % calcula a primeira coluna Q (q_1) a partir da primeira coluna de A R(1,1) = norm(A(:,1)); % calcula r_11 a partir da primeira coluna de A for j = 2:n v = A(:,j); % inicia o calculo de v_j for i = 1:j-1 v = v - dot(Q(:,i),A(:,j))*Q(:,i); % calcula v_j conforme processo de GS classico R(i,j) = dot(Q(:,i),A(:,j)); % calcula r_ij para i diferente de j end Q(:,j) = v/norm(v); % calcula q_j normalizando v_j conforme processo de GS R(j,j) = norm(v); % calcula r_ij para i == j end end %%%--------------------------------------------------------------------------%%%