9 - Rozwiązywanie układów równań nieliniowych Marian Bubak Department of Computer Science AGH University of Science and Technology Krakow, Poland bubak@agh.edu.pl dice.cyfronet.pl Contributors Anna Marciniec Radosław Kazior Rafał Stachura
Outline 1 Wstęp 2 Metoda iteracyjna dla układów równań nieliniowych 3 Metoda Newtona-Raphsona dla układów równań nieliniowych 4 Modyfikacje metody N-R dla układów równań nieliniowych
Wstęp Wstęp Sformułowanie zadania Dane: m równań o m niewiadomych: f i (x 1, x 2,..., x j,..., x m ) = 0; i = 1, 2,... m ( ) Warunek: f ( x) = 0 Rozwiązanie układu: liczby α j, j = 1, 2,..., m takie że: f i (α 1, α 2,..., α j,..., α m ) = 0; i, j = 1, 2,..., m Uwaga: Nie ma dobrych, ogólnych metod rozwiązania(*) np. m = 2
Wstęp Wstęp f (x, y) = 0 g(x, y) = 0 }
Wstęp Wstęp Problemy: kontury zerowe podział płaszczyzny, f, g dowolne kontury bardzo złożone, liczba zer nie jest znana a priori, dla x > 2 hiperpłaszczyzny, jak wybrać punkty startowe? kiedy zakończyć poszukiwanie miejsc zerowych? konieczność wyboru rozwiązania, którego poszukujemy nie szukamy wszystkich Uwaga: Wykorzystujemy wiedzę z analizy matematycznej, geometrii, algebry!!!
Wstęp Wstęp Przykładowe układy równań nieiniowych - wizualizacja: https://www.symbolab.com/solver/ non-linear-system-of-equations-calculator Zastosowanie układów równań nieliniowych: kinetyka reakcji chemicznych, badanie równowagi termodynamicznej układu, przewidywanie istnienia związków chemicznych sterowanie elektrycznymi silnikami prądu stałego badanie dynamiki samolotów (nieliniowe zależności prędkości, kątów,wysokości...) układy automatyczne, problem utrzymania równowagi w układach niestabilnych - drony...
Metoda iteracyjna dla układów równań nieliniowych Metoda iteracyjna dla układów równań nieliniowych zapisujemy jako: co sugeruje metodę iteracyjną: x (n) i f ( x ) = 0 x i = ϕ i (x 1, x 2,..., x m ), i = 1, 2,..., m = ϕ i (x (n 1) 1, x (n 1) 2,..., x m (n 1) ), i = 1, 2,..., m x (n) = ϕ ( x (n 1) ) ( )
Metoda iteracyjna dla układów równań nieliniowych Kryterium zbieżności Niech: - α = ϕ ( α ) - istnieją d ij ( x ) = ϕ i ( x ) x j, i, j = 1, 2,..., m dla x R m = { x : x α < ρ} D-macierz o elementach d ij
Metoda iteracyjna dla układów równań nieliniowych Kryterium zbieżności Wtedy: - warunek wystarczający zbieżności ( ) dla x 0 R m D( x ) L < 1, x R m : (ϕ - odwzorowanie zwężające (contraction mapping) dla dowolnych x, y : ϕ ( x ) ϕ ( y ) L x y ) - warunek konieczny zbieżności ( ) promień spektralny ρ(d) 1 prędkość zbieżności - zależna liniowo od L
Metoda Newtona-Raphsona dla układów równań nieliniowych Metoda Newtona-Raphsona dla układów równań nieliniowych Wprowadzenie: W przypadku równania skalarnego, f : IR IR, metoda Newtona-Raphsona rozwiązania równania f (x) = 0 jest dana jako: x k+1 = x k f (x k) f (x k ) Przez analogię uogólniamy wzór, aby wygenerować wielowymiarową metodę: F : IR N D IR N x k+1 = x k F (x k ) 1 F (x k ) gdzie F (x k ) byłoby macierzą pochodnej F w punkcie x k
Metoda Newtona-Raphsona dla układów równań nieliniowych Idea metody: {x (n 1) j } - przybliżenie pierwiastków {α j } α j = x (n 1) j + h j f i ( x (n 1) + h ) = 0 szereg Taylora: f i ( m x (n 1) ) + ( f i ) n 1 h j + O(δx 2 ) = 0 ( ) x j=1 j }{{} pomijamy gdzie ( f i x j ) n 1 - oznacza obliczone w α (n 1)
Metoda Newtona-Raphsona dla układów równań nieliniowych Jako kolejne przybliżenie α bierzemy x (n) = x (n 1) + h przy czym h - wyznaczamy z ( ) Można to zapisać: J (n 1) h (n 1) = f (n 1) x (n) = x (n 1) + h (n 1) } - układ równań liniowych Stosujemy jakobian: J (n 1) i,j = ( f i x i ) (n 1)
Metoda Newtona-Raphsona dla układów równań nieliniowych Trudności wybór x (0), sprawa zbieżności - trudna w przypadku ogólnym, złożoność obliczeniowa - J m 2 elementów: formalnie różniczkowanie, wprowadzanie do programu - w każdej iteracji - J - na nowo, - h - z rozwiązania układu równań liniowych.
Modyfikacje metody N-R dla układów równań nieliniowych Modyfikacje metody N-R dla układów równań nieliniowych 1) damped iterates F (n) = m [f (n) i ] 2 i=1 gdy F (n) < F (n 1) x (n) - akceptujemy w przeciwnym razie próbujemy: x (n) = x (n 1) + ρ h (n 1) 0 < ρ < 1, zwykle kolejno ρ = 1 2, 1 4, 1 8
Modyfikacje metody N-R dla układów równań nieliniowych 2) J-duża złożoność obliczeniowa J (n 1) używamy dla p iteracji: J (n 1) h (n 1+k) = f (n 1+k) x (n+k) = x (n 1+k) + h (n 1+k), k = 0, 1,..., p 1 dobór p?
Modyfikacje metody N-R dla układów równań nieliniowych 3) x (n) = x (n 1) [J (n 1) ] 1 f (n 1) }{{} ( ) ( ) H (n 1) przez przybliżenie i : H (n) = H (n 1) + D (n 1) }{{} ( ) ( ) człon korekcyjny