METODY ROZWI ZYWANIA UKºADÓW RÓWNAŃ

Transkrypt

METODY ROZWI ZYWANIA UKºADÓW RÓWNAŃ
Metoda gradientów sprzęŜonych do rozwiązywania układów równań ... 1/2
METODY ROZWI€
€ZYWANIA UKº
ºADÓW RÓWNAŃ
Metoda gradientów sprzęŜonych
Rozwiązanie układu równań jest równowaŜne minimalizacji funkcjonału kwadratowego:
1 T
x A x + bT x
2
W metodzie gradientów sprzęŜonych Hestensa-Stiefela minimum funkcjonału jest wyznaczane
iteracyjnie. W kaŜdym kroku jest wyznaczany gradient funkcji :
F (x ) =
grad F (x ) = A x + b = r
który równy jest wektorowi residuów r. Niech x(0) oznacza wybrany wektor startowy. W celu
osiągnięcia w kolejnym kroku F(x(1)) < F(x(0)) wyznaczany jest kierunek poszukiwań minimum
przeciwny do kierunku gradientu:
p(1) = - r(0) = - grad F(x(0)) = -(Ax(0) + b)
Wychodząc z x(0) poszukuje się w kierunku p(1) minimum funkcji F(x). Wprowadzenie parametru
q1 jako:
x(1) = x(0) + q1 p(1) prowadzi do warunku :
F(x(1)) = 1/2 (x(0) + q1 p(1))T A (x(0) + q1p(1)) + bT (x(0) + q1 p(1)) =
= 1/2 q12 p(1)T A p(1) + q1 p(1)T r(0) + F(x(0)) = Minimum.
Po obliczeniu pochodnej względem q1 i przyrównaniu jej do zera otrzymuje się :
p (1)T r (0)
r (0)T r (0)
q1 = − (1)T
= (1)T
p A p (1)
p A p (1)
W drugim i kolejnych krokach jako kierunek poszukiwań p(k) przyjmuje się kombinację liniową:
-r(k-1) = -grad F(x(k-1)) = -(A x(k-1) + b) oraz poprzedniego kierunku poszukiwań p(k-1),
tak, Ŝe obydwa kierunki p(k-1) oraz p(k) są sprzęŜone względem elipsoidy F(x) = const. Oznacza to,
Ŝe nowe minimum poszukiwane jest na płaszczyïnie równoległej do ostatnich dwóch kierunków
i poprowadzonej przez punkt x(k-1). Przecięcie tej płaszczyzny z elipsoidą F(x(k-1)) jest elipsą, dla
której prosta p(k-1) jest styczna w punkcie x(k-1). Minimum funkcji F(x) zakłada się w środku
elipsy, a kierunek stycznej w punkcie x(k-1) oraz od punktu styczności do środka elipsy są
sprzęŜone względem tej elipsy, a jednocześnie względem elipsoidy.
k-ty kierunek poszukiwań jest wyznaczany z zaleŜności:
p(k) = -r(k-1) + ek-1 p(k-1), dla k ≥ 2.
Współczynnik ek-1 określa się na podstawie warunku sprzęŜenia kierunków p(k-1) oraz p(k),
mianowicie :
p(k)TA p(k-1) = 0
ek -1 =
r (k -1)T A p (k -1)
, k ≥ 2.
p (k -1)T A p (k -1)
2010
K.M.Gawrylczyk
Metoda gradientów sprzęŜonych do rozwiązywania układów równań ... 2/2
(k)
Wyznaczony w ten sposób kierunek p umoŜliwia znalezienie nowego wektora przybliŜonego:
x(k) = x(k-1) + qk p(k) , k ≥ 2 ,
gdzie wartość qk jest znajdowana analogicznie, jak poprzednio:
p (k )T r (k -1)
r (k -1)T r (k -1)
qk = − (k )T
= (k )T
, k ≥2.
p A p (k )
p A p (k )
Uwzględniając, Ŝe wektor residuów r(k) = Ax(k) + b (k ≥ 2) jest ortogonalny do płaszczyzny
rozpiętej na r(k-1) oraz p(k) dwie ostatnie formuły moŜna przepisać następująco :
r (k -1)T r (k -1)
r (k -1)T r (k -1)
ek -1 = (k -2)T (k -2) , qk = (k )T (k ) , k ≥ 2 .
r
r
p Ap
gdzie wzór dla qk obowiązuje równieŜ dla k = 1. Jak długo r(k-1) ≠ 0, tzn. x(k-1) nie jest
rozwiązaniem układu równań, otrzymuje się (ze względu na to, Ŝe A jest dodatnio określona)
dodatnie wartości ek-1 oraz qk.
Algorytm :
1. Start : wybór x(0)
2.
r(0) = Ax(0) + b ; p(1) = −r(0)
Powtarzające się kroki iteracji :
r (k -1)T r (k -1)
r (k -2)T r (k -2)
3.
ek -1 =
4.
p(k) = −r(k-1) + ek-1 p(k-1),
5.
r (k -1)T r (k -1)
qk = (k )T (k )
p Ap
6.
x(k) = x(k-1) + qk p(k)
7.
r(k) = r(k-1) + qk (A p(k) ) (obl. rekursywne dla skrócenia czasu obliczeń):
r(k) = Ax(k) + b = A(x(k-1) +qk p(k)) + b = r(k-1) + qk(A p(k))
8.
sprawdzenie r(k) ≠ 0, powrót do (3) lub koniec.
Nakład pracy na krok relaksacji Nt = (Nband + 5) * ilość_równań.
2010
K.M.Gawrylczyk

Podobne dokumenty