Z5: Algebra liniowa Zagadnienie: Zastosowania algebry liniowej Zadanie: Operatory różniczkowania zagadnienie brzegowe Dyskretne operatory różniczkowania Numeryczne obliczanie pochodnych oraz rozwiązywanie wszelkiego typu równań różniczkowych wymaga przedstawienia pochodnych i operatorów różniczkowych w postaci dyskretnej Mimo że pojęcie pochodnej jest stosunkowo proste to może mieć wiele przedstawień dyskretnych i umiejętne z nich korzystanie może znacznie poprawić efektywność obliczeń komputerowych Rozpoczniemy od najprostszego problemu Mamy zadaną funkcję f: R R i chcemy wyznaczyć jej pochodną w jakimś punkcie x Wprost z definicji pochodnej otrzymujemy wzór przybliżony f (x) f(x + h) f(x) h Podstawowe pytanie jakie się tu pojawia to jaki jest błąd tego przybliżenia? Aby ten błąd wyznaczyć skorzystamy ze wzoru Taylora: f(x + h) = f(x) + f (x)h + f (x) h + Stąd błąd przybliżenia w poprzednim wzorze wynosi f (x) h + a więc jest rzędu h Okazuje się że pochodną można liczyć o wiele dokładniej korzystając z innych wzorów na przykład ze wzoru f (x) f(x + h) f(x h) h Znowu skorzystamy ze wzoru Taylora: f(x + h) = f(x) + f (x)h + f (x) f(x h) = f(x) f (x)h + f (x) 1 h + f (x) h 3 + 3! h f (x) h 3 + 3!
Wtedy f(x + h) f(x h) h = f (x) + f (x) h + 3! a więc błąd przybliżenia jest rzędu h Oba wzory przybliżone pozwalają nam wyrazić pochodną f (x) z dokładnością zależną od h za pomocą kombinacji liniowej wartości funkcji f w pewnych punktach Do zagadnienia wyznaczania dyskretnej wersji pochodnych wyższych rzędów i innych operatorów różniczkowych powrócimy za chwilę a teraz pokażemy jak mozna obie definicje pochodnej dyskretnej stosować do rozwiązywania równań i układów równań rózniczkowych metodą łamanych Eulera Rozważamy równanie gdzie f: R R n x = f(t x) x(t 0 ) = x 0 R n Pokażemy jak znaleźć przybliżoną wartość rozwiązania x w przedziale [t 0 t] W tym celu dzielimy przedział [t 0 t] na n- przedziałów [t k 1 t k ] przyjmując h = (t t 0 )/n t k = t 0 + kh k = 1 n Metoda łamanych Eulera jest oparta na pierwszym wzorze na pochodną przybliżoną funkcji x(t) a więc x (t) = x(t + h) x(t) h Z powyższego otrzymujemy x(t k+1 ) x(t k ) x (t k )h = f(t k x(t k ))h Jeżeli x k = x(t k ) to rozwiązanie w kolejnych punktach wyraża się wzorem rekurencyjnym x k+1 = x k + f(t k x k )h k = 0 n 1 Jeżeli zastosujemy drugi wzór na pochodną x (t) a więc x (t k ) = x(t k+1) x(t k 1 ) h to x k+1 = x k 1 + f(t k x k )h
Zauważmy że ostatni wzór nie wystarcza nam do obliczenia x 1 bo musielibyśmy znać wartość wyrażenia x(t 0 h) W tym przypadku możemy skorzystać z pierwszego wzoru x 1 = x 0 + f(t 0 x 0 )h W przypadku równań różniczkowych wyższych rzędów są możliwe dwie metody postępowania Pierwsza polega na tym że równania wyższych rzędów zastępujemy odpowiadającymi im układami równań rzędu pierwszego a więc można stosować opisaną wyżej metodę Eulera Druga metoda polega na zastosowaniu wzorów przybliżonych na pochodne wyższych rzędów Wprost z definicji pochodnych wyższych rzędów otrzymujemy następujące wzory przybliżone f (n) (x) 1 h n ( ) n n ( 1) n i f(x + hi) i i=0 Należy podkreślić że można znaleźć wzory lepiej przybliżające pochodną f (n) (x) W szczególności wzór f (x) f(x + h) + f(x h) f(x) h lepiej przybliża f (x) choć nie zawsze można go stosować przy rozwiązywaniu równań różniczkowych Pochodne cząstkowe pierwszego rzędu to nic innego jak zwykłe pochodne przy ustalonych pozostałych współrzędnych zatem wzory przybliżone są następujące u u(x + h y) u(x h y) (x y) x h u u(x y + h) u(x y h) (x y) x h Również wypisanie wzorów na wyższe pochodne cząstkowe nie sprawia większych kłopotów W szczególności gdzie u = u x (x y) + u (x y) y u x (x y) u(x + h 1 y) u(x y) + u(x h 1 y) u y (x y) u(x y + h ) u(x y) + u(x y h ) h 1 h 3
gdzie h 1 i h są przyrostami odpowiednio x i y Największą trudność w numerycznym rozwiązywaniu równań różniczkowych sprawiają zagadnienia brzegowe Po pierwsze na brzegu obszaru należy dobrać odpowiednie wzory na pochodne Po drugie zwykła metoda rekurencyjna taka jak metoda łamanych Eulera nie wystarcza do wyznaczenia rozwiązania Rozważmy na przykład równanie z warunkami brzegowymi x(0) = x 0 x (t) = f(x(t)) x(1) = x 1 Aby rozwiązać nasze równanie metodą łamanych Eulera należy oprócz wartości funkcji x w zerze również znać wartość jej pochodnej w zerze Można postąpić w ten sposób że przyjmujemy że x (0) = c gdzie c jest pewną stałą rzeczywistą a następnie rozwiązujemy równanie metodą łamanych Eulera Na koniec korzystając z warunku brzegowego x(1) = x 1 wyznaczamy c W przypadku równań cząstkowych rozwiązywanie zagadnień brzegowych jest dość trudne i jest kilka istotnie różnych technik numerycznych ich rozwiązywania od algebraicznych poprzez wariacyjne do metod probabilistycznych (metoda Monte Carlo) Operatory teorii pola Poznamy teraz kilka operatorów różniczkowych występujących w fizyce i teorii całki Wszystkie używane przez nas funkcje będą określone w pewnym podzbiorze otwartym U R n Niech f: U R i f ma pochodne cząstkowe pierwszego rzędu Operator określony wzorem [ f grad f = f f ] x 1 x x n nazywamy gradientem funkcji f Niech f: U R i f ma drugie pochodne cząstkowe f f x x 1 n w U Wtedy operator określony wzorem f = f x + f 1 x + + f x n nazywamy operatorem Laplace a Na przykład jeżeli f(x y) = ln(x + y ) to f x = x x + y i 4 f y = y x + y
więc f = f x + f y = (x + y ) 4x (x + y ) + (x + y ) 4y (x + y ) = 0 Niech F: U R n Można przyjąć że odwzorowanie F przyporządkowuje każdemu punktowi x U wektor F(x) o początku w punkcie x i dlatego F będziemy nazywać polem wektorowym Operator div określony wzorem div F = F 1 x 1 + + F n x n nazywamy dywergencją pola wektorowego F Dywergencję i gradient funkcji można zapisać używając symbolicznego operatora nabla: Mianowicie = [ x 1 x ] x n grad f = f div F = F W przypadku funkcji F: U R 3 gdzie U R 3 rotację F określamy wzorem rot F = [ F3 y F z F 1 z F 3 x F x F ] 1 y Rotację rot F można również zdefiniować korzystając z wyznacznika: i j k rot F = x y z F 1 F F 3 gdzie i j k są wersorami osi Ox Oy i Oz tzn i = [1 0 0] j = [0 1 0] k = [0 0 1] Używając operatora nabla i iloczynu wektorowego wzór ten możemy zapisać w postaci rot F = F Między dywergencją rotacją gradientem i operatorem Laplace a są następujące zależności div (rot F) = 0 rot (grad u) = 0 div (grad u) = u 5
Ekstrema funkcji div (uf) = u div F + F grad u Następujące twierdzenie podaje warunek wystarczający istnienia ekstremum lokalnego funkcji dwóch zmiennych Niech f będzie funkcją określoną w otoczeniu punktu P R Zakładamy że funkcja f ma ciągłe drugie pochodne cząstkowe w punkcie P oraz f f (P ) = (P ) = 0 x y Niech W = f x (P ) f x y (P ) f x y (P ) f y (P ) Jeżeli W > 0 to funkcja f ma w punkcie P silne ekstremum lokalne: gdy f x (P ) > 0 to jest to minimum gdy f x (P ) < 0 to jest to maksimum Jeżeli W < 0 to funkcja f nie ma w punkcie P ekstremum 6