function allsteps = aufg06f02(n)

if nargin < 1
   n = 100;
end

allsteps = zeros(1,5);

I = speye(n);
E = sparse(2:n,1:n-1,1,n,n);
D = E + E' - 2*I; %'
A = kron(D,I) + kron(I,D);
A = -n^2*A;

disp('Inverse Iteration mit festem Shift lambda = 0:');
tol = 1e-10;
lambda = 0;
var = 0;
[ret,steps] = aufg06f01(A,tol,var,lambda);
fprintf('Gesamtschrittzahl = %2d, Eigenwertnaeherung = %g\n\n',steps,ret);
allsteps(1) = steps;

disp('Inverse Iteration mit festem Shift lambda = 18:');
lambda = 18;
[ret,steps] = aufg06f01(A,tol,var,lambda);
fprintf('Gesamtschrittzahl = %2d, Eigenwertnaeherung = %g\n\n',steps,ret);
allsteps(2) = steps;

disp('Inverse Iteration mit festem Shift lambda = 19.3:');
lambda = 19.3;
[ret,steps] = aufg06f01(A,tol,var,lambda);
fprintf('Gesamtschrittzahl = %2d, Eigenwertnaeherung = %g\n\n',steps,ret);
allsteps(3) = steps;

disp('Inverse Iteration mit variablem Shift:');
lambda = 0;
var = 1;
[ret,steps] = aufg06f01(A,tol,var,lambda);
fprintf('Gesamtschrittzahl = %2d, Eigenwertnaeherung = %g\n\n',steps,ret);
allsteps(4) = steps;

disp('Inverse Iteration mit Rayleigh-Quotienten Shift:');
var = 2;
[ret,steps] = aufg06f01(A,tol,var,lambda);
fprintf('Gesamtschrittzahl = %2d, Eigenwertnaeherung = %g\n\n',steps,ret);
allsteps(5) = steps;
