QR Metod

You might also like

Download as docx, pdf, or txt
Download as docx, pdf, or txt
You are on page 1of 9

Prirodno matematiki fakultet

Univerzitet u Kragujevcu

Seminarski rad
Tema: QR metoda
Predmet: Obrazovni softver 2

Mentor :
Dr Tatjana Tomovi

Student:
Saa Geri 50/2011

Uvod
U numerikoj linearnoj algebri, QR metod slui za izraunavanje sopstvenih vrednosti i
sopstvenih vektora matrice. QR tranformacija je rezvijena u kasnim 50-im godinama prolog
veka, a razvio je Don Fransis (Engleska) i Vera Kublanovskaja (USSR) radei samostalno.
Osnovna ideja je da se izvri QR dekompozicija, iscrtavanjem matrice kao proizvoda unitarne
matrice i gornje trougaone matrice , mnoenjem faktora u obrnutom redosledu iterativno.

Householderova metoda
Ovo je metoda , kao i Givensova, kojom se kvadratna matrica A dimenzije n transformie
pomou konano mnoog unitarnih transformacija slinosti u gornju Hessenbergovu matricu ili
trodijagonalnu matricu, ako je A Hermiteova. Za razliku od Givensove metode u kojoj se svodi
na na nulu jedan po jedan element matrice, te se ona realizuje u (n 2 )(n 1)/2 koraka, ovom
metodom se u jednom koraku svode na nulu svi potrebni elementi odgovarajueg vektora kolone
tekue matrice, te se ona realizuje (n 2) koraka.
Radi nalaenja matrice Tj, j =,1,..., n 2 , kojom se realizuje pomenuta transformacija u j-tom
koraku,poimo od Householderove matrice
T=I 2ww*,

(22)
2

n
gde je I jedinina matrica, a w C iw2=ww=1. Matrica T je Hermiteova

T*=I* - (2ww*)*=I - 2ww*=T,


i s obzirom na pretpostavku da je w jedinini vektor, unitarma

(23)

T2 = I .

Ako je vektor y dobijen transformacijom vektora x matricom T ,


(24)
onda je

Dakle , iz (25) sledi da je tranformacijom T euklidska norma vektora ne manja, a iz (26) da je


skalarni proivod (y,x) realan broj, jer je x*Tx = (x*Tx)*.
Odredimo vektor w, a time i matricu T , tako da se dati vektor x =
vektor kolinearan sa koordinatnim vektorom e1 = (1, 0 , . . . , 0)T,
(27)
Konstanta k je , s obzirom na (25),
(28)

Tx = ke1.

( x1, , xm)

preslika u

Neka je = x2 i neka je prva koordinata vektora x oblika x1 = |x1| eia . Zbog (26) je

realan broj , te k mora imati inilac eia. Kako iz (28) sledi da je |k|= , to je
(29)
Matrica T , tj. vektor w , odreeni su relacijama (27) i (24),

Odakle je , s obzirom na to da je w jedinini vektor ,

(30)

Znak konstante k, date izrazom (29) , izaberimo tako da imenilac izraza (30) ne bude blizak
nuli , radi numerike stabilnosti algoritma. Kako je
(31)

a > 0 , treba u (29) uzeti znak minus , tj. uzeti da je


k= - eia.
Zamenom (30) u (22) , uzimajui u obzir (31) , dobijamo da je matrica T

Dakle, Householderova matrica T kojom se proizvoljan m-dimenzioni vektor x preslikava u


vektor kolinearan sa prvim koordinatnim vektorom e1 je

Unitarnom transformacijom definisanom formulama (32) vektor x se preslikava u vektor ija je


samo prva koordinata razliita od nule i ija je euklidska norma jednaka euklidskoj normi

vektora x. Stoga se u prvom koraku Householderovog algoritma Householderova matrica


T
T (n1)
1
(gornji indeks ukazuje na njenu dimenziju) definie vektorom x = (a21 , , an 1) ,
odreenim svim elementima prve kolone matrice A izuzev elemta a11 , a matrica tranformacije T1
(n1)
dimenzije n se dobija dopunjavanjem matrice T 1
koordinatnim vektorima do ndimenzione matrice. Prema dokazanom , svi elementi prve kolone matrice T1 A , izuzev prva
dva, su nula,

Da bi matrica A1 , dobijena posle prvog koraka Householderovog algoritma , bila slina matrici
A , potrebno je jo matricu T1 A pomnoiti sa desne strane matricom.

QR metoda
Ako je A gornja Hessenbergova matrica, onda su takve i sve matrice Ai. Stoga je an,n-1(i) jedini
nedijagonalni element u poslednjoj vrsti matrice Ai koji nije nula, i on tei nuli istom brzinom
kao i ( n / n-1)i i . Da bi ubrzali konvergenciju, primenjujemo LR metodu na matricu.
~
A= A p I ,
~ (i )
gde je p aproksimacija sopstvene vrednosti n . Element a n , n1

matrice

~
A i se ponaa kao

(
i bre konvergira ka nuli kada

n p
n1 p
n

, jer

p | n | < | n1 , prema dokazanom

log i a(i)
nn = n , te se kao dobra aproksimacija vrednosti

(i)
moe uzeti ann . Ako je

viestruki ili kompleksni koren, onda se ova ocean dobija procenom sopstvenih vrednosti matrice
nie dimenzije koja ini blok u matrici Ai . Kada je pi ocenjeno, algoritam i-tog koraka LR
metode je

(1)

A i pi I =Li Ri

A i+1 =R i Li + pi I

QR metoda je slina LR metodi. Polazei od kvadratne matrice

A1 A

reda n , formiraju se

matrice Ai , Qi i Ri na sledei nain:

(2)

A i=Qi Ri ,

Q Q i=I ,


,
0

A i+1 =R i Q i .
Za razliku od LR metode koja se ne moe uvek primeniti, u ovoj metodi se vri dekompozicija
matrice Ai na unitarnu Qi i gronje trougaounu matricu Ri , to je uvek mogue realizovati. Druga
prednost QR nad LR metodom je njena stabilnost koriste se unitarne transfromacije koje su
stabilne, za razliku od LU dekompozicije. QR dekompozicija matrice Ai se moe realizovati na
(i)
(i )
primer Hauseholderovom metodom tako to se matricama H i , , H n1 , formiranim od
Householderoviih matrica, matrica Ai transformie u gornje trougaonu matricu Ri ,
(3)

(i)
H(i)
n1 , , H 1 A i=Ri

Iz (3) sledi da je
H
(i )
A i=( n1 , , H ) R i=H(i)
i , , H n1 R i .

(i)

( i ) 1
1

jer je

( H (ji) ) =( H (ji) )

=H (ji) .
(i )

Stoga je u i-tom koraku


( i)

Q i=H i , , H n1

(i)

(i)

A i+1 =R i Q i =R i H i , , H n1

Treba napomenuti da QR dekompozicija matrice nije jednoznano odreena . Naime ,


ako je S proizvoljna dijagonalna matrica oblika

e
0 ei
0
S= ( ( ) )
i1

(i ovde oznaava imaginarnu jedinicu), matrica QiS je unitarna, jer je i S unitarna matrica.
Kako je jo i S* Ri gornje trougaona matrica, to je izrazom
A i ( Qi S ) ( S R i )
Definisano beskonano mnogo oblika QR dekompozicije matrice Ai (za razliito ).
Osobine matrice Ai , Qi i Ri su formulisane u teoremi koja sledi , a koja je analogna
teoremi 2.
QR algoritam se zasniva na ponovljenom korienju QR fakturizacije . Slovo Q oznaava
ortogonalna i unitarna matrica a slovo R oznaava pravo, ili gornja, trougaona matrica.
QR algoritam se nikada ne praktikuje u svom jednostavnom obiku. Uvek se prethodno
smanji na Hessengbergovu forumu, u kojoj su svi elementi ispod glavne dijagonale nula.
Redukcija se kontrolise iteracijama, i faktorizacija moe biti zavrena mnogo bre. Sem
toga, Shift strategija je vie sofisticiranija i razlikuje se za razliite oblike algoritma.

Hessenbergova redukcija Housholderovom metodom:

function [H,vec]=hes(A)
%Hessenbergova redukcija Housholderovom metodom
%Ova funkcija daje gornju trougaonu matricu H iz matrice A koristeci
n=length(A); %dimenzije matrice
for k = 1:n-2
u = A(:,k); %pravimo vektor
u(1:k) = 0; % nule prve kolone vektora
sigma = norm(u); %normalizovana vrednost sigma
if sigma ~= 0
if u(k+1) < 0, %ukoliko je prvi clan iznad dijagonale
sigma = -sigma; %sigma menja znak
end
u(k+1) = u(k+1) + sigma;
rho = 1/(sigma*u(k+1)); %pomocna vrednost rho
v = rho*A*u; %mnozimo polaznu matricu sa leve i desne strane
w = rho*(u'*A)';
beta = rho/2*u'*v; %pomocna vrednost beta
v = v - beta*u;
w = w - beta*u;
A = A - v*u' - u*w';
A(k+2:n,k) = 0;
end
end
H=A;

end

QR metod:
function [A,V,G]=qrmetod1(A,tol,iter)
A=hes(A); %Hessenbergova gornje trougaona matrica
i=0;
for k=1:100
% while norm(A(k)-A(k-1),p)<tol
while i<iter
[Q,R]=qr(A); %qr faktorizacija
A=R*Q;
i=i+1;
% end

end

end
%end
V=eigs(A); %sopstvene vrednosti
[G,D]=eigs(A); % G- sopstveni vektori,D- dijagnalna matrica sop vrednosti

end

Test:
function test()
A=[4.1 -3.4 3.2 -1.3 4.6;
1.0 3.3 1.1 -3.4 -3.6;
-1.7 4.6 2.0 3.4 3.7;
-0.2 1.0 -4.1 3.4 2.7;
1.0 -4.8 -0.8 -0.5 -0.6];
[Matrica,Vrednosti,Vektor]=qrmetod1(A,0.0001,25);
greska=A*Vrednosti-Vektor*Vrednosti
n=length(Vrednosti);
for i=1:n
hold on
plot(i,Vrednosti(i),'--rs')
pause2(1);
end
end

You might also like