% Rydd opp
clc
clear
close

% Matrise fra Forelesning 7 (Eksempel 5.1.4)
A = [4 -1 6; 2 1 6; 2 -1 8];
Ainv = inv(A);

% Plotting av egenrommene
hold on
I = -1.5:0.1:1.5;               % Intervall.
plot3(I,I,I,'k','LineWidth',3)  % Egenrom til lambda1=9.
[X Y] = meshgrid(I);
Z = (Y-2*X)/6;                  % Egenrommet til lambda2=lambda3=2.
surf(X,Y,Z)
pause(30)                       % Jeg trenger tid til å rotere plottet!

% Setup
k = 5;                          % Antall iterasjoner.
x = [1; 1; 3/4];                % Startvektor.
%x = [1; -1; 3/4];
plot3(x(1),x(2),x(3),'.','MarkerSize', 50,'Color','r')

% Let's go
for i = 1:k
    pause(5)
    x = Ainv*x;                 % Steg (a).
    ma = max(x);                % Største tall i x.
    mi = min(x);                % Minste tall i x (kan være negativt).
    if abs(mi)>=abs(ma)         % Sammenligner absoluttverdier.
        u = mi;
    else 
        u = ma;
    end
    x = (1/u)*x;                % Steg (c).
    plot3(x(1),x(2),x(3),'.','MarkerSize', 50,'Color','r')
end

% Estimat for egenverdi og egenvektor etter k iterasjoner.
Egenverdi = 1/u
Egenvektor = x