Metody numeryczne rozwiązywania równań różniczkowych Marcin Orchel Spis treści Wstęp. Metody przybliżone dla równań pierwszego rzędu................ Metoda kolejnych przybliżeń Picarda...................2 Całkowanie przez rozwinięcie w szereg................ 3.2 Metody przybliżone dla równań drugiego rzędu............... 4.3 Rozwiązywanie zagadnień brzegowych metodami numerycznymi...... 6.3. Metoda różnicowa........................... 6.3.2 Metoda postulowania postaci rozwiązania.............. 7 2 Zadania 9 2. Przydatne polecenia.............................. 9 2.2 Zadania na 3.................................. 9 2.3 Zadania na 4.................................. 9 2.4 Zadania na 5.................................. 9 Wstęp. Metody przybliżone dla równań pierwszego rzędu.. Metoda kolejnych przybliżeń Picarda Całkując równanie różniczkowe y = f (x, y) () z warunkiem początkowym y = y dla x = x dostajemy wzór: y = y + f (x, y) dx (2) x Wzór iteracyjny: Przykład. y i = y + f (x, y i ) dx x (3) y = e x y 2 (4)
z warunkiem początkowym: x =, y =.... y = + y 2 = + e x (e x ) 2 dx = Przykład 2. z warunkiem początkowym: x =, y = : y 3 =... Ponieważ y 2 = + 4 x 4 4 x 4 y = + y = (5) e x y 2 dx = e x (6) 3e x e 2x dx = 3e x 3 2 e2x + 2 x (7) y = 4 x 4 y + 2 (8) y = (9) 4 x + 2dx = 2x + 8 x2 () (2x + 8 x2 ) + 2dx = 4 x 32 x2 + 2dx () y 2 = 2x 8 x2 96 x3 (2) (2x 8 x2 ) 96 x3 + 2dx = 4 x + 32 x2 + 384 x3 + 2dx (3) y 3 = 2x 8 x2 + 96 x3 + 536 x4 (4) e x = + x! + x2 2! +... (5) (e 4 x) = 4 e 4 x (6) (e 4 x) = 6 e 4 x (7)... Szereg Maclaurina ma postać n= gdzie f () () = f(). Z szeregu Maclaurina otrzymujemy, że: n! f (n) () x n (8) e 4 x = 4 x + 32 x2 384 x3 (9) x + 4 4e 4 x = x + 4 4 + x 8 x2 + 96 x3 536 x4... (2) Rozwiązanie na wolframalpha.com, http: // www. wolframalpha. com/ input/?i= y% 27+ %3D+ % 2F4x+ -+% 2F4y+ %2B+ 2. 2
..2 Całkowanie przez rozwinięcie w szereg Szereg Taylora dla funkcji: y = y (x ) + (x x ) y (x ) + (x x ) 2 y (x ) +... + (x x ) n y (n) (x ) +... (2) 2 n! lub inaczej zapisany gdzie f () (x ) = f(x ). Przykład 3. n= n! f (n) (x ) (x x ) n (22) y = e x y 2 (23) Warunek początkowy: (, ) sposób. Postulujemy rozwiązanie: Kwadrat szeregu potęgowego jest równy y = a x + a 2 x 2 + a 3 x 3 +... + a n x n +... (24) ( ) 2 ( n ) a n x n = a i a n i x n (25) n= n=2 i= Po podstawieniu tego szeregu do równania wyjściowego i zastosowaniu wzoru na kwadrat szeregu potęgowego otrzymujemy: ( ) ) a +2a 2 x+3a 3 x 2 +...+ a 2 x 2 + 2a a 2 x 3 + (a 2 2 + 2a a 3 x 4 +... = +x+ x2 2 + x3 6 +... Mamy następujące równania na współczynniki: (26) a = (27) 2a 2 = (28) 3a 3 + a 2 = 2 4a 4 + 2a a 2 = 6 (29) (3)..., w rezultacie otrzymujemy: 2 sposób. Obliczamy kolejne pochodne: y = x + x2 2 x3 6 5 24 x4 +... (3) y = e x 2yy (32) 3
y = e x 2y 2 2yy (33) y (4) = e x 6y y 2yy (34) Wiemy, że wartość szukanej funkcji w punkcie x jest y. Dlatego też Z twierdzenia Taylora dla (, ) otrzymujemy: y (x ) = e x y 2 (35) y = x + x2 2 x3 3! 5 4! x4 +... (36).2 Metody przybliżone dla równań drugiego rzędu Jeśli znamy jedno rozwiązanie y to drugie rozwiązanie szczególne równania liniowego jednorodnego wynosi: e pdx y 2 = Ay dx (37) Rozwiązanie równania typu: y 2 s (x) y + p (x) y + q (x) y = F (x) (38) gdzie funkcje s (x), p (x), q (x) i F (x) są wielomianami lub w pewnym ustalonym obszarze dają się rozwinąć w szereg potęgowy względem x x do nich zbieżny. Rozwiązanie wyznaczamy ze pomocą metody współczynników nieoznaczonych, rozwiązanie postulujemy w postaci y = a + a (x x ) + a 2 (x x ) 2 +... (39) i podstawiamy do równania wyjściowego. Przyrównując współczynniki przy x-ach otrzymujemy wartości parametrów a i. Przykład 4. Podstawiamy do niego y + xy = (4) y = a + a x + a 2 x 2 + a 3 x 3 + a 4 x 4 + a 5 x 5... (4) y = a + 2a 2 x + 3a 3 x 2 + 4a 4 x 3 + 5a 5 x 4... (42) y = 2a 2 + 6a 3 x + 2a 4 x 2 + 2a 5 x 3... (43) i otrzymujemy: 2a 2 + 6a 3 x + 2a 4 x 2 + 2a 5 x 3 +... + a x + a x 2 + a 2 x 3 + a 3 x 4 + a 4 x 5 + a 5 x 6 = (44) 4
Rozwiązując je otrzymujemy: 2a 2 = 6a 3 + a = 2a 4 + a = 2a 5 + a 2 =... a 2 = a 3 = a 2 3 a 4 = a 3 4 a 5 =... Wszystkie współczynniki są lub zależne od a i a. Po ich podstawieniu do y otrzymamy rozwiązanie ogólne postaci: ( y = a x3 2 3 + x 6 ) ( 2 3 5 6... + a x x4 3 4 + x 7 ) 3 4 6 7... (47) Równanie na wolframalpha.com, http: // www. wolframalpha. com/ input/?i= y% 27% 27% 2Bxy% 3D. Rozwiązanie równania typu (45) (46) x 2 y + xp (x) y + q (x) y = (48) Rozwiązujemy za pomocą metody współczynników nieoznaczonych, przy założeniu, że p (x) i q (x) dają się rozwinąć w szereg potęgowy względem x. Rozwiązania wtedy mają postać: ( ) y = x r a + a x + a 2 x 2 +... (49) gdzie r jest pierwiastkiem równania wskaźnikowego (określającego) r (r ) + p () r + q () = (5) Jeśli pierwiastki równania wskaźnikowego są różne i ich różnica nie jest liczbą całkowitą, to otrzymujemy w ten sposób dwa niezależne liniowo rozwiązania. W przeciwnym razie metoda współczynników nieoznaczonych daje tylko jedno rozwiązanie. Drugie rozwiązanie możemy wtedy wyznaczyć ze wzoru (37). Przykładem tego typu równania jest równanie Bessela postaci: ( x 2 y + xy + x 2 n 2) y = (5) Przykład 5. ( ) x 2 y + xy + x 2 4 y = (52) Rozwiązanie na wolframalpha.com, http: // www. wolframalpha. com/ input/?i= x^2y% 27% 27+ %2B+ xy% 27+ %2B+ %28x^2-4% 29y+ %3D+. 5
.3 Rozwiązywanie zagadnień brzegowych metodami numerycznymi.3. Metoda różnicowa Po angielsku finite difference method. Metoda ta będzie przedstawiona na przykładzie zagadnienia brzegowego dla równania liniowego drugiego rzędu: gdzie y (x) + p (x) y (x) + q (x) y (x) = f (x) (53) a x b (54) y (a) = α (55) y (b) = β (56) Przedział [a, b] dzielimy za pomocą położonych w równych odstępach węzłów gdzie x v = x + vh (57) v =,,..., n; x = a; x n = b (58) Zatem mamy n + węzłów. Tworzymy n równań postaci: dla y (x v ) + p (x v ) y (x v ) + q (x v ) y (x v ) = f (x v ) (59) v =,..., n (6) Następnie wartości pochodnych zastępujemy wyrażeniami skończonymi (finite difference): y (x v ) y v+ y v (6) 2h y (x v ) y v+ 2y v + y v h 2 (62) Drugie wyrażenie można wyprowadzić z zastosowania do pierwszych pochodnych forward difference a do drugich backward difference: po pierwszych pochodnych mamy y (x v ) y v y v h (63) i wreszcie y (x v ) y v+ y v h y (x v ) y v y v (65) h Po podstawieniu otrzymujemy układ n równań liniowych, gdzie niewiadomymi są wartości funkcji w węzłach, y v. Wartości w pierwszym i ostatnim węźle są znane. (64) 6
.3.2 Metoda postulowania postaci rozwiązania Metoda ta będzie przedstawiona na przykładzie zagadnienia brzegowego dla równania liniowego drugiego rzędu: gdzie Postulujemy rozwiązanie postaci: y (x) + p (x) y (x) + q (x) y (x) = f (x) (66) a x b (67) y (a) = α (68) y (b) = β (69) n g (x) = a i g i (x) (7) i= gdzie każda funkcja g i (x) spełnia warunki brzegowe i funkcje te są liniowo niezależne. Po podstawieniu tego rozwiązania do równania wyjściowego otrzymujemy: ε (x; a, a 2,..., a n ) = g (x) + p (x) g (x) + q (x) g (x) f (x) (7) gdzie e jest błędem przybliżenia, tzw. defektem. Można zauważyć, że defekt jest funkcją liniową współczynników a i. Często postuluje się rozwiązanie postaci: n g (x) = g (x) + a i g i (x) (72) i= gdzie g (x) spełnia zadane warunki brzegowe, natomiast g i (x) warunki: g i (a) = g i (b) = (73) i =, 2,..., n (74) Wtenczas dla dowolnych wartości a i spełnione są warunki brzegowe. Przykład funkcji g (x): g (x) = α + β α (x a) (75) b a Widzimy, że są dla niej spełnione warunki (68), (69). Metody wyznaczania współczynników a i. Metoda uzgodnienia. Zakładamy, że błąd znika w n punktach: gdzie ε (x v ; a, a 2,..., a n ) = (76) v =, 2,..., n (77) a < x < x 2 <... < x n < b (78) Otrzymujemy układ n równań liniowych na współczynniki a i. 7
Metoda kwadratu błędu. Minimalizujemy: F (a, a 2,..., a n ) = b a ε 2 (x; a, a 2,..., a n ) dx (79) Warunek konieczny na ekstremum dostarcza nam układ równań liniowych: dla F a i = (8) i =, 2,..., n (8) Metoda Galerkina. Wymuszamy ortogonalność błędu, tzn. musi zachodzić: b ɛ (x; a, a 2,..., a n ) g i (x) dx = (82) a dla i =, 2,..., n, otrzymujemy w ten sposób układ równań liniowych na współczynniki a i. Metoda Ritza. Często rozwiązanie zagadnienia brzegowego jest równocześnie rozwiązaniem pewnego zagadnienia wariacyjnego, tzn. y (x) minimalizuje całkę postaci: I [y] = b H ( x, y, y ) dx (83) a Jeśli znamy funkcję H (x, y, y ) to wstawiamy g (x) za y (x). Następnie minimalizujemy wyrażenie I [y] = I (a, a 2,..., a n ) (84) Z warunków koniecznych na ekstremum: dla otrzymujemy n równań na współczynniki a i. I a i = (85) i =, 2,..., n (86) Przykład 6. Pod ściśle określonymi warunkami nałożonymi na funkcje p, q, f i y zagadnienie brzegowe: [ p (x) y (x) ] + q (x) y (x) = f (x) (87) a y (a) = α (88) y (b) = β (89) jest równoważne zagadnieniu wariacyjnemu: b [ ] min I (y) = p (x) y 2 (x) + q (x) y 2 (x) 2f (x) y (x) dx (9) y y (a) = α (9) y (b) = β (92) 8
2 Zadania 2. Przydatne polecenia http://www.mathworks.com/help/matlab/ordinary-differential-equations. html http://www.mathworks.com/help/matlab/boundary-value-problems.html http://www.mathworks.com/help/matlab/partial-differential-equations. html 2.2 Zadania na 3. Rozwiązać metodą numeryczną w Matlabie dowolne równanie zwyczajne z warunkiem początkowym oraz zwyczajne drugiego rzędu z warunkami brzegowymi oraz cząstkowe z wybranymi warunkami, porównać z rozwiązaniem symbolicznym z Matlaba oraz z wolframalpha.com. Dla równań różniczkowych cząstkowych proszę pominąć rozwiązanie symboliczne z Matlaba. Wskazówki http://www.mathworks.com/help/matlab/ref/pdepe.html 2.3 Zadania na 4. Rozwiązać metodą numeryczną następujące zagadnienia brzegowe: z warunkami: y (x) + y (x) = (93) y () = (94) ( ) π y = 2 (95) 2 Rozwiązać również powyższe równania symbolicznie na wolframalpha.com. 2.4 Zadania na 5. Rozwiązać metodą numeryczną następujący problem graniczny: z warunkami: dla oraz u t = 2 u x 2 (96) u (x, ) = sin πx (97) x [, ] (98) u (, ) = u (, t) = (99) Rozwiązać również powyższe równania symbolicznie na wolframalpha.com. 9
Literatura [] I. N. Bronsztejn, K. Siemiendiajew, G. Musiol, and H. Möhlig, Nowoczesne kompendium matematyki. Wydawnictwo naukowe PWN, 24. [2] J. Niedoba and W. Niedoba, Równania różniczkowe zwyczajne i cząstkowe. Wydawnictwa AGH, 2.