% construct a linear system with solution [1;2;3] A = rand(3,3) b = A*[1;2;3] % B = [A,b] % create an augmented matrix Q = eye(3) % initialize Q % G = givensmat(B(1:2,1)) B(1:2,:) = G*B(1:2,:) Q(:,1:2) = Q(:,1:2)*G' G = givensmat(B([1,3],1)) B([1,3],:) = G*B([1,3],:) Q(:,[1,3]) = Q(:,[1,3])*G' G = givensmat(B(2:3,2)) B(2:3,:) = G*B(2:3,:) Q(:,2:3) = Q(:,2:3)*G' x = backsub(B(:,1:3), B(:,4))