% Script: qriter_test.m % Exapmle script for QR iteration to find eigenvalues % close all; clear all; n = 10; D = diag((1:n)'); V = randn(n); % Interesting results if orthogonal matrix here instead! Ak = V*D/V; maxiter = 20; approx = []; for k=1:maxiter [Q,R] = qr(Ak); Ak = R*Q; approx = [approx Ak(n,n)]; end format long disp('The approximation to the smallest eigenvalue:') approx' plot(log(abs(approx))); xlabel('k'); ylabel('smallest eigenvalue'); % now look at error behavior err = abs( approx-1 ); figure plot(log(err)); xlabel('k'); ylabel('error in smallest eigenvalue'); format short e disp('The error in the smallest eigenvalue:') err'