WUT_Computer_Science/ENUME/references/MNUM/Projekt2/Zadanie1/bezPrzesun.m
2021-11-10 13:12:25 +01:00

20 lines
545 B
Matlab

function [wartWlasne, iteracje, time, ok] = bezPrzesun(D, tolerance, imax)
%imax - maksymalna liczba iteracji
% ok - czy funkcja wykonala sie z przekroczeniem imax
start = tic;
ok = 1;
i = 1;
while i <= imax && max(max(D-diag(diag(D)))) > tolerance
[Q1, R1] = qrZmodGS(D);
D = R1*Q1; %macierz po przekształceniu
i = i + 1;
end
if i > imax
ok = 0;
end
iteracje = i;
wartWlasne = diag(D); %wykstraktowanie wektora wartości własnych
time = toc(start);
end