% Budeme demonstrovat metodu vypoctu nejvetsiho vlastniho cisla.

% Pouzijeme velmi jednoduchou diagonalni matici 3x3, u ktere jsou
% primo videt vlastni cisla, nebo jinou regularni matici 3x3,
% ale muzete si vyzkouset i jine matice

%matice = [4 0 0;0 3.7 0; 0 0 3];
matice = [4 0 -10;0 3.7 -8.8; -7.85 2.6 3];

% Do vlastniho vektoru v ulozime pocatecni odhad
disp(['Pocatecni odhad vlastniho vektoru je']);
v = [1;1;1]

% Budeme opakovat 50x, v prubehu vypoctu si budeme pamatovat normu matice*v,
% tedy odhad vlastniho cisla (vime ze se ma blizit ctyrce)

iteraci = 50;

clear odhadVlastnihoCisla;

for i=1:iteraci
	odhadVlastnihoCisla(i) = norm(matice*v);
	v = matice * v / norm( matice * v );
end;

disp(['Konecny odhad vlastniho cisla je']);
lambda = norm(matice*v)

disp(['Konecny odhad vlastniho vektoru je']);
v=v

% Zobrazime si jak jsme se k vlastnimu cislu blizili
plot(1:iteraci,odhadVlastnihoCisla);
