function [u,lambda,it]=MP(A,x0,e) %funJccja pobiera macierz A początkowy wektor przybliżeń x0 i ograniczenie dokładności rozwiązania(u i lambda) e
c=sqrt(dot(x0,x0)); %cbliczenie długości wektora xQ u0=x0/c; %normalizacja wektora przybliżeń it= ; %początkowa wartość licznika iteracji
el=l; %przypisanie początkowych wartości warunku zbieżności procesu dla lambda (el) i u (eu) gwarantujące wejście do pętli eu=l ;
Iambda0= ; %przypisanie początkowej wartości lambdaO, które będzie słyżyło jako lambda z pcprzeniej iteracji
Rwhile el>e && eu>e %pętla iteracyjna sprawdzająca warunki zbieżności dla lambda i u
x=A*uO; %cbliczanie wektora własnego macierzy A Iambda=u0’*x; %obliczanie m.ax wartości własnej macierzy A c=sqrt(dot(x,x)); %obliczenie długości wektora x u=x/c; %ncrm.alizacja wektora własnego
el=abs(lambda-lambdaO)/lambda; %obiiczanie błędu względnego z lambdy (warunek zbieżności dla lambda) eu=sqrt(dot((u-uO),(u-uO))); %obliczanie normy dla różnicy wektorów u i uO (warunek zbieżności dla lambda) it=it+l; %zwiekszenie licznika iteracji
H if it>2C %sprawdzenie ograniczenia liczby iteracji disp('proces rozbieżny'); break; %przerwanie działania pętli
end
lambdaO=lambda; %przypisanie wartości lambda obliczonej w danej iteracji jako wartość z iteracji poprzedniej u0=u; %przypisanie wektora u obliczonego w danej iteracji jako wektora z iteracji poprzedniej
end
end