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