Zaawansowane metody numeryczne Komputerowa analiza zagadnień różniczkowych 8. Metody wielokrokowe Metody Verleta

Podobne dokumenty
Zaawansowane metody numeryczne Komputerowa analiza zagadnień różniczkowych 7a. Metody wielokrokowe

Komputerowa analiza zagadnień różniczkowych 6. Metody wielokrokowe. P. F. Góra

Wstęp do metod numerycznych 14. Kilka wstępnych uwag na temat numerycznego rozwiazywania równań różniczkowych zwyczajnych

Zaawansowane metody numeryczne Komputerowa analiza zagadnień różniczkowych 4. Równania różniczkowe zwyczajne podstawy teoretyczne

Zaawansowane metody numeryczne Komputerowa analiza zagadnień różniczkowych 5. Terminologia. Metody Eulera, metody punktu środkowego i metody trapezowe

Komputerowa analiza zagadnień różniczkowych 3. Metody Eulera, metody punktu środkowego i metody trapezowe

Komputerowa analiza zagadnień różniczkowych 3. Metody Eulera, metody punktu środkowego i metody trapezowe

Komputerowa analiza zagadnień różniczkowych 10. Dwupunktowe problemy brzegowe (BVP, Boundary Value Problems)

Komputerowa analiza zagadnień różniczkowych 6. Metoda diagramowa. Obszary stabilności. P. F. Góra

Wstęp do metod numerycznych 9a. Układy równań algebraicznych. P. F. Góra

Wstęp do metod numerycznych Eliminacja Gaussa Równania macierzowe. P. F. Góra

Komputerowa analiza zagadnień różniczkowych 5. Metody Rungego-Kutty (II) P. F. Góra

Zagdanienia do egzaminu z Inżynierskich Metod Numerycznych - semestr 1

Wstęp do metod numerycznych Uwarunkowanie Eliminacja Gaussa. P. F. Góra

Komputerowa analiza zagadnień różniczkowych 1. Równania różniczkowe zwyczajne podstawy teoretyczne. P. F. Góra

Wstęp do metod numerycznych Rozwiazywanie równań algebraicznych. P. F. Góra

Definicje i przykłady

Układy równań i równania wyższych rzędów

Metody numeryczne równań różniczkowych zwyczajnych

Metody przybliżonego rozwiązywania równań różniczkowych zwyczajnych

VII. Elementy teorii stabilności. Funkcja Lapunowa. 1. Stabilność w sensie Lapunowa.

Metoda Runge-Kutta-Fehlberga i sterowanie długością kroku

x y

KADD Minimalizacja funkcji

Wstęp do metod numerycznych Faktoryzacja QR i SVD. P. F. Góra

Całkowanie numeryczne

Zagdanienia do egzaminu z Inżynierskich Metod Numerycznych - semestr zimowy 2017/2018

Wstęp do równań różniczkowych

Wstęp do równań różniczkowych

użyteczne, gdy problem nie wymaga zmiany dt ważne: schematy do rozwiązywania równań cząstkowych mają często wielokrokowy charakter

III. Układy liniowe równań różniczkowych. 1. Pojęcie stabilności rozwiązań.

Z52: Algebra liniowa Zagadnienie: Zastosowania algebry liniowej Zadanie: Operatory różniczkowania, zagadnienie brzegowe.

INTERPOLACJA I APROKSYMACJA FUNKCJI

Wstęp do metod numerycznych 9. Rozwiazywanie równań algebraicznych. P. F. Góra

Numeryczne rozwiązywanie równań różniczkowych ( )

P. F. Góra semestr letni 2006/07

Komputerowa analiza zagadnień różniczkowych 1. Równania różniczkowe zwyczajne podstawy teoretyczne. P. F. Góra

Wstęp do metod numerycznych Eliminacja Gaussa Faktoryzacja LU. P. F. Góra

Wstęp do metod numerycznych Zagadnienia wstępne Uwarunkowanie. P. F. Góra

Wstęp do metod numerycznych 9. Minimalizacja: funkcje jednej zmiennej. P. F. Góra

Wstęp do metod numerycznych 11. Minimalizacja: funkcje wielu zmiennych. P. F. Góra

Metody numeryczne rozwiązywania równań różniczkowych

u(t) RRZ: u (t)=f(t,u) Jednokrokowy schemat różnicowy

Własności wyznacznika

13. Równania różniczkowe - portrety fazowe

Tydzień nr 9-10 (16 maja - 29 maja), Równania różniczkowe, wartości własne, funkcja wykładnicza od operatora - Matematyka II 2010/2011L

3. Macierze i Układy Równań Liniowych

METODY NUMERYCZNE. Wykład 3. Plan. Aproksymacja Interpolacja wielomianowa Przykłady. dr hab.inż. Katarzyna Zakrzewska, prof.agh. Met.Numer.

1 Pochodne wyższych rzędów

5. Rozwiązywanie układów równań liniowych

Wstęp do metod numerycznych Eliminacja Gaussa i faktoryzacja LU. P. F. Góra

Macierze. Rozdział Działania na macierzach

Rozkłady wielu zmiennych

STATYKA Z UWZGLĘDNIENIEM DUŻYCH SIŁ OSIOWYCH

Metody numeryczne. materiały do wykładu dla studentów

II. RÓŻNICZKOWANIE I CAŁKOWANIE NUMERYCZNE Janusz Adamowski

Komputerowa analiza zagadnień różniczkowych 2. O tym, co można rozwiazać analitycznie. P. F. Góra

8. PODSTAWY ANALIZY NIELINIOWEJ

Całkowanie numeryczne przy użyciu kwadratur

UKŁADY ALGEBRAICZNYCH RÓWNAŃ LINIOWYCH

V. RÓWNANIA RUCHU MECHANIKI KLASYCZNEJ Janusz Adamowski

Wykład X Rozwiązywanie zagadnień początkowych dla równań różniczkowych zwyczajnych

ROZWIĄZYWANIE RÓWNAŃ NIELINIOWYCH

OPTYKA KWANTOWA Wykład dla 5. roku Fizyki

17.1 Podstawy metod symulacji komputerowych dla klasycznych układów wielu cząstek

Wykład z równań różnicowych

Metody numeryczne I Równania nieliniowe

OBLICZANIE POCHODNYCH FUNKCJI.

Rozwiązywanie równań nieliniowych

Zagadnienia brzegowe dla równań eliptycznych

KADD Minimalizacja funkcji

Układy równań liniowych. Krzysztof Patan

Metody numeryczne. materiały do wykładu dla studentów. 7. Całkowanie numeryczne

Rozwiązywanie zależności rekurencyjnych metodą równania charakterystycznego

Metoda eliminacji Gaussa. Autorzy: Michał Góra

ZADANIA OPTYMALIZCJI BEZ OGRANICZEŃ

1 Równania różniczkowe zwyczajne o rozdzielonych zmiennych

Równania różniczkowe liniowe wyższych rzędów o stałych współcz

dr Mariusz Grządziel 15,29 kwietnia 2014 Przestrzeń R k R k = R R... R k razy Elementy R k wektory;

Analiza szeregów czasowych: 6. Liniowe modele niestacjonarne

Laboratorium II: Modelowanie procesów fizycznych Skrypt do ćwiczeń

Układy równań nieliniowych (wielowymiarowa metoda Newtona-Raphsona) f(x) = 0, gdzie. dla n=2 np.

Przekształcanie równań stanu do postaci kanonicznej diagonalnej

Wstęp do metod numerycznych Zagadnienia wstępne Uwarunkowanie. P. F. Góra

1.1 Przegląd wybranych równań i modeli fizycznych. , u x1 x 2

3. Interpolacja. Interpolacja w sensie Lagrange'a (3.1) Dana jest funkcja y= f x określona i ciągła w przedziale [a ;b], która

Wstęp do metod numerycznych Algebraiczna metoda gradientów sprzężonych. P. F. Góra

Wykład 14. Elementy algebry macierzy

Optymalizacja ciągła

Całka nieoznaczona, podstawowe wiadomości

Met Me ody numer yczne Wykład ykład Dr inż. Mic hał ha Łanc Łan zon Instyt Ins ut Elektr Elektr echn iki echn i Elektrot Elektr echn olo echn

Interpolacja. Marcin Orchel. Drugi przypadek szczególny to interpolacja trygonometryczna

5 Równania różniczkowe zwyczajne rzędu drugiego

Optymalizacja ciągła

Rozwiązywanie równań nieliniowych i ich układów. Wyznaczanie zer wielomianów.

Interpolacja i modelowanie krzywych 2D i 3D

Wstęp do metod numerycznych Zagadnienia wstępne Uwarunkowanie. P. F. Góra

Analiza szeregów czasowych: 7. Liniowe modele stochastyczne

1 Równania różniczkowe drugiego rzędu

Metody numeryczne. Sformułowanie zagadnienia interpolacji

Transkrypt:

Zaawansowane metody numeryczne Komputerowa analiza zagadnień różniczkowych 8. Metody wielokrokowe Metody Verleta P. F. Góra http://th-www.if.uj.edu.pl/zfs/gora/ semestr letni 2006/07

Motywacja Metody wielokrokowe sa starsze i bardziej popularne od metod Rugego-Kutty. Sa też prostsze w tym sensie, że nie wymagaja (często żmudnych) obliczeń prawej strony (pochodnej) w niepotrzebnych punktach pośrednich korzystaja wyłacznie z wartości obliczonych w potrzebnych punktach, czyli w punktach, w których chcieliśmy uzyskać rozwiazanie. Jawne metody Adamsa wymagaja tylko jednego obliczenia prawej strony na krok. Wyróżnia się trzy podstawowe typy metod wielokrokowych: 1. Jawne metody Adamsa-Bashfortha, 2. Niejawne metody Adamsa-Moultona, 3. Niejawne metody BDF dla problemów sztywnych. 8. Metody wielokrokowe. Metody Verleta 2

Metody Adamsa ogólne sformułowanie Rozważamy problem Cauchy ego dy = f(x, y), dx y(x) = y 0. (1) Rozwiazanie ma postać y(x n+1 ) = y n + x n+1 x n f(x, y(x)) dx. (2) 8. Metody wielokrokowe. Metody Verleta 3

Klasyczne metody Adamsa polegaja na zastapieniu f(x, y(x)) w (2) przez wzór ekstrapolacyjny (Bashforth) lub interpolacyjny (Moulton) z węzłami interpolacji odległymi o krok całkowania, h, i scałkowaniu tego wzoru. Celem takiego postępowania, podobnie jak w metodach Rungego-Kutty, jest uwzględnienie zmienności pochodnej w obrębie kroku całkowania. Zauważmy, że wynik całkowania wielomianu interpolacyjnego nie zależy od wartości funkcji wartości f(x l, y l ) wchodza jako ustalone wartości interpolowanej funkcji w węzłach. k-krokowe metody Adamsa: Adams-Bashforth: y n+1 = y n + h Adams-Moulton: y n+1 = y n + h k j=1 k 1 j=0 β j f n+1 j + O(h k+1 ), (3) β j f n+1 j + O(h k+1 ). (4) 8. Metody wielokrokowe. Metody Verleta 4

Przykład - wyprowadzenie trzykrokowej metody Adamsa-Bashfortha Funkcję podcałkowa w (2) przybliżam poprzez ekstrapolację wielomianowa z trzech ostatnio obliczonych punktów, odległych od siebie o h: + f(x, y(x)) f extr (x) = (x x n 1 )(x x n ) (x n 2 x n 1 )(x n 2 x n ) f n 2 (x x n 2 )(x x n ) (x n 1 x n 2 )(x n 1 x n ) f n 1 + (x x n 2 )(x x n 1 ) (x n x n 2 )(x n x n 1 ) f n = 1 2h 2(x x n + h)(x x n )f n 2 1 h 2(x x n + 2h)(x x n )f n 1 + 1 2h 2(x x n + 2h)(x x n + h)f n. (5) 8. Metody wielokrokowe. Metody Verleta 5

Następnie x n+1 x n f(x, y(x)) dx 1 h 2f n 1 h 0 x n+1 x n f extr (x)dx = 1 2h 2f n 2 (z + 2h)z dz + 1 2h 2f n h 0 h 0 (z + h)z dz (z + 2h)(z + h) dz = 1 2h 2 5 6 h3 f n 2 1 h 2 4 3 h3 f n 1 + 1 2h 2 23 6 h3 f n = h ( ) 23fn 16f 12 n 1 + 5f n 2. (6) Proszę to porównać z wyrażeniem (7c) poniżej. 8. Metody wielokrokowe. Metody Verleta 6

Idea konstrukcji metod Adamsa: rysunek nie jest wierny, jako że pochodnej w punkcie x n+1 nie oblicza się za pomoca prostej interpolacji/ekstrapolacji metoda niejawna metoda jawna f n+1 impl f n+1 expl f(x n ) = y (x n ) f n f n-2 fn-1 x n-2 x n-1 x n x n+1 x 8. Metody wielokrokowe. Metody Verleta 7

Metody Adamsa-Bashfortha (jawne) y n+1 = y n + hf n + O(h 2 ) (7a) y n+1 = y n + 2 h ( ) 3fn f n 1 + O(h 3 ) (7b) y n+1 = y n + 12 h ( ) 23fn 16f n 1 + 5f n 2 + O(h 4 ) (7c) y n+1 = y n + h 24 ( 55fn 59f n 1 + 37f n 2 9f n 3 ) + O(h 5 ) (7d) y n+1 = y n + h 720 ( 1901fn 2774f n 1 + 2616f n 2 1274f n 3 + 251f n 4 ) + O(h 6 ) (7e) y n+1 = y n + h 1440 ( 4277fn 7923f n 1 + 2616f n 2 7298f n 3 + 2877f n 4 475f n 5 ) + O(h 7 ) (7f) 8. Metody wielokrokowe. Metody Verleta 8

Metody Adamsa-Moultona (niejawne) y n+1 = y n + hf n+1 + O(h 2 ) (8a) y n+1 = y n + 2 h ( ) fn+1 + f n + O(h 3 ) (8b) y n+1 = y n + 12 h ( ) 5fn+1 + 8f n f n 1 + O(h 4 ) (8c) y n+1 = y n + h 24 y n+1 = y n + 720 h + O(h 6 ) ( ) 9fn+1 + 19f n 5f n 1 + f n 2 + O(h 5 ) (8d) ( ) 251fn+1 + 646f n 264f n 1 + 106f n 2 19f n 3 y n+1 = y n + h 1440 ( 475fn+1 + 1427f n 798f n 1 + 482f n 2 173f n 3 + 27f n 4 ) + O(h 7 ) (8e) (8f) 8. Metody wielokrokowe. Metody Verleta 9

Metody BDF, Backward Differentiation Formula (niejawne) Dla układów sztywnych, pochodna obliczana tylko w prawym krańcu przedziału. y n+1 = y n + hf n+1 + O(h 2 ) (9a) y n+1 = 1 ( ) 3 4yn y n 1 + 2 3 hf n+1 + O(h 3 ) (9b) y n+1 = 11 1 ( ) 18yn 9y n 1 + 2y n 2 + 6 11 hf n+1 + O(h 4 ) (9c) y n+1 = 1 25 y n+1 = 1 137 ( ) 48yn 36y n 1 + 16y n 2 3y n 3 + 12 25 hf n+1 + O(h ( 5 ) )(9d) 300yn 300y n 1 + 200y n 2 75y n 3 + 12y n 4 + 60 137 hf n+1 + O(h6 ) (9e) y n+1 = 1 147 ( 360yn 450y n 1 + 400y n 2 225y n 3 + 72y n 4 10y n 5 ) + 60 147 hf n+1 + O(h7 ) (9f) 8. Metody wielokrokowe. Metody Verleta 10

Podane wyżej metody sa wszystkimi metodami wielokrokowymi o stałym kroku, opartymi o interpolację/ekstrapolację wielomianowa. Zgodność metod Adamsa jest oczywista. Zgodność metod BDF też, po prostych rachunkach, okazuje się być oczywista. Dla przykładu, dla drugiej z metod BDF otrzymujemy 3 y n+1 y n h y n y n 1 h = 2f n+1. (10) 8. Metody wielokrokowe. Metody Verleta 11

Stabilność metod wielokrokowych Stabilność metod wielokrokowych bada się nieco inaczej niż stabilność metod jednokrokowych typu metod Rungego-Kutty. Dla przykładu pokażemy jak badać stabilność k-krokowej jawnej metody Adamsa-Bashfortha; stabilność niejawnych metod Adamsa-Moultona i BDF bada się zupełnie podobnie. Rozważmy równanie (3), w którym wszystkie y l zostały zaburzone: y l y l +ε l. Mamy y n+1 +ε n+1 = y n +ε n +h y n +ε n +h k j=1 k β j j=1 β j f ( x n+1 j, y n+1 j + ε n+1 j ) f n+1 j + f y ε n+1 j n+1 j.(11) 8. Metody wielokrokowe. Metody Verleta 12

Wszystkie k jakobiany w równaniu (11) oblicza się w różnych punktach. Jeśli jednak krok h jest mały, możemy przyjać, że w przybliżeniu sa one sobie równe, podobnie jak to robiliśmy przy analizie stabilności metod Rungego-Kutty. (Założenie to nie jest spełnione w miejscach, w których funkcja zmienia się bardzo gwałtownie.) Wobec czego przechodzimy do reprezentacji, w której jakobian jest diagonalny zastępujemy jakobian f/ y jego wartościa własna λ, natomiast błędy ε l zastępujemy odpowiednia składowa ε l. Formalnie rzecz biorac, analizę taka trzeba powtórzyć dla wszystkich λ i odpowiadajacych im składowych błędów, okaże się jednak, że nie jest to konieczne. Z równania (11) otrzymujemy zatem ε n+1 = ε n + hλβ 1 ε n + hλβ 2 ε n 1 + + hλβ k ε n+1 k. (12) 8. Metody wielokrokowe. Metody Verleta 13

Macierz wzmocnienia Oznaczmy hλ = z. Równanie (12) możemy przepisać w postaci macierzowej czyli ε n+1 ε n ε n 1. ε n+2 k = 1+β 1 z β 2 z β 3 z... β k 1 z β k z 1 0 0... 0 0 0 1 0... 0 0........ 0 0 0... 1 0 ε n ε n 1 ε n 2. ε n+1 k (13a) ε n+1 = G ε n (13b) Zwracam uwagę, że ε n z równania (11) i ε n z równania (13b) to sa zupełnie różne wektory. Badanie stabilności metody (3) sprowadza się teraz do znalezienia wartości własnych macierzy wzmocnienia G. 8. Metody wielokrokowe. Metody Verleta 14

Wartości własne macierzy wzmocnienia Oznaczmy W k = det(g gi). Rozwijajac względem ostatniej kolumny (patrz (13a)) otrzymujemy W k = gw k 1 + ( 1) k+1 β k z det 1 g 0... 0 0 1 g... 0 0 0 1... 0....... 0 0 0... 1 (14) Wyznacznik macierzy wypisanej jawnie w równaniu (14) wynosi 1. Postępowanie to łatwo iterować. Ostatecznie otrzymujemy następujace równanie charakterystyczne dla macierzy wzmocnienia (uwaga: zmienna jest g): 8. Metody wielokrokowe. Metody Verleta 15

g k (1 + zβ 1 )g k 1 zβ 2 g k 2 zβ k 1 g zβ k = 0. (15) Metoda Adamsa-Bashfortha rzędu k jest stabilna jeśli wszystkie pierwiastki równania (15) leża wewnatrz okręgu jednostkowego. Ogół takich z, dla których pierwiastki (15) leża wewnatrz okręgu jednostkowego, nazywam obszarem stabilności metody. Zauważmy, że analizujac obszar stabilności, uwalniamy się niejako od równania różniczkowego, obecnego tu formalnie tylko poprzez wartości własne jakobianu, a skupiamy się na samej metodzie, podobnie jak to było dla metod Rungego-Kutty. Wyprowadzenie równań opisujacych stabilność niejawnych metod Adamsa- Moultona i BDF przebiega w sposób analogiczny. 8. Metody wielokrokowe. Metody Verleta 16

Obszar stabilności metod Adamsa-Bashfortha maleje wraz ze wzrostem rzędu metody. Dwie pierwsze metody Adamsa-Moultona sa A-stabilne, obszary stabilności pozostałych maleja wraz ze wzrostem rzędu metody. Metody BDF sa stabilne poza pewnym obszarem ograniczonym, który rośnie wraz ze wzrostem rzędu metody. Żadna metoda wielokrokowa oparta o interpolację/ekstrapolację wielomianowa z k > 6 nie jest stabilna! Można konstruować stabilne metody wielokrokowe wyższych rzędów, ale dla nich nie obowiazuje już paradygmat ekstrapolowania pochodnej na podstawie zachowania w poprzednich węzłach nie sa to więc metody Adamsa. 8. Metody wielokrokowe. Metody Verleta 17

Zaledy metod wielokrokowych Koncepcyjna prostota, łatwość zaimplementowania. Szybkość (zwłaszcza dla metod jawnych). Uzyskanie wysokiego rzędu jest obliczeniowo tanie. Popularność, bardzo duża ilość gotowych kodów. Wady metod wielokrokowych Wymagaja inicjalizacji. Maja kiepskie własności stabilności. Kłopotliwa zmiana kroku. 8. Metody wielokrokowe. Metody Verleta 18

Metody predyktor-korektor (predictor-corrector) Jeśli problem nie jest sztywny, bardzo często pewna jawna metodę Adamsa- Bashfortha (7) stosuje się jednocześnie z niejawna metoda Adamsa-Moultona (8) o tym samym rzędzie. Za pomoca metody jawnej przewiduje się rozwiaza- nie, które potem poprawia się za pomoca metody niejawnej. Można to dalej powtarzać, poprawiajac poprawione. Uzyskana metoda jest oczywiście jawna unika się rozwiazywania układu równań algebraicznych, na ogół nieliniowych. Metody predyktor-korektor sa bardzo popularne w praktycznych zastosowaniach metody Adamsa występuja prawie wyłacznie w tym zestawieniu. Vide grabit nagrabljennoje. Ale ja ich nie lubię 8. Metody wielokrokowe. Metody Verleta 19

Przykład: predyktor: ỹ n+1 = y n + 1 2 h ( ) 3f n f n 1, (16a) korektor: y n+1 = y n + 1 2 h ( ) f(x n+1, ỹ n+1 ) + f n, (16b) f n+1 = f(x n+1, y n+1 ). (16c) Niekiedy krok korektora powtarza się (iteruje) w celu uzyskania samouzgodnionego (self-consistent) rozwiazania nieliniowego równania algebraicznego. Na ogół jednak dokonuje się tylko jednego lub dwóch kroków korektora. 8. Metody wielokrokowe. Metody Verleta 20

Metody Verleta motywacja Ponieważ klasyczne równania ruchu (równania Newtona) maja postać równań różniczkowych drugiego rzędu, w praktyce bardzo ważna jest umiejętność numerycznego rozwiazywania równań postaci m i ẍ i = F i, i = 1, 2,..., N, czyli d 2 x = a(t, x(t)), (17) dt2 gdzie x, a R 3N, N jest ilościa czastek. Równanie tej postaci można łatwo przekształcić do układu równań pierwszego rzędu, ale szczególnie efektywne powinny być metody od razu dostosowane do równań rzędu drugiego. Niekiedy ruch jest z przyczyn fizycznych ograniczony do przypadku dwu- lub jednowymiarowego. Wówczas zamiast 3N w (17) mamy odpowiednio 2N lub N. 8. Metody wielokrokowe. Metody Verleta 21

Pewien bardzo zły algorytm Równanie (17) rozwiazujemy z pewnym stałym i niewielkim krokiem h. Naiwne rozumowanie może doprowadzić do wniosku, że dla odpowiednio małych h, siła a więc i przyspieszenie, czyli prawa strona równania (17) nie zmienia się, a więc układ w ciagu jednego kroku zachowuje się tak, jakby był układem jednostajnie przyspieszonym. Wobec tego x n+1 = x n + v n h + 1 2 a nh 2, (18a) v n+1 = v n + a n h, (18b) gdzie v n, a n sa, odpowiednio, prędkościa i siła obliczana w chwili t n. Równanie (18a) jest, w gruncie rzeczy, rozwinięciem Taylora x(t n + h), nie jest zatem dziwne, że algorytm (18) jest zgodny z równaniem (17). Można to jednak także 8. Metody wielokrokowe. Metody Verleta 22

pokazać w nieco inny sposób: Odejmijmy stronami równanie (18a) i to samo równanie cofnięte o jeden krok w czasie. Dostaniemy x n+1 x n = x n x n 1 + (v n v n 1 )h + 1 2 (a n a n 1 )h 2. (19) Z równania (18b) dostajemy v n v n 1 = a n 1 h. (20) Po podstawieniu do (19) i po uporzadkowaniu dostajemy x n+1 x n h x n x n 1 h h W granicy h 0 + odtwarzamy równanie (17). = 1 2 (a n + a n 1 ). (21) 8. Metody wielokrokowe. Metody Verleta 23

Jeśli przyspieszenie w (17) nie zależy od prędkości, macierz wzmocnienia dla metody (18) ma postać [ I + 1 G = 2 Jh 2 ] h, (22) Jh I gdzie J ij = a i / x j tn jest Jakobianem przyspieszeń po położeniach. Widać, iż metoda (18) może mieć bardzo poważne problemy ze stabilnościa. 8. Metody wielokrokowe. Metody Verleta 24

Klasyczny algorytm Verleta Spróbujmy wyprowadzić metodę całkowania równania (17) w sposób bardziej systematyczny. Zakładamy, że przyspieszenia nie zależa od prędkości. Dokonujemy następujacych rozwinięć w szereg Taylora: x(t n +h) = x(t n ) + dx h + 1 dt tn 2 x(t n h) = x(t n ) dx dt tn h + 1 2 d 2 x dt 2 h 2 + 1 tn 6 d 2 x dt 2 tn h 2 1 6 d 3 x dt 3 h 3 + O(h 4 )(23a) tn d 3 x dt 3 tn h 3 + O(h 4 )(23b) Po dodaniu równań (23) stronami i uporzadkowaniu wyrazów otrzymujemy x n+1 = 2x n x n 1 + a n h 2 + O(h 4 ). (24) Algorytm (24) zwany jest metoda (algorytmem) Verleta (Verlet 1967). 8. Metody wielokrokowe. Metody Verleta 25

Zauważmy, iż metoda Verleta jest metoda wielokrokowa do obliczenia przyszłej wartości x potrzebna jest znajomość obecnej oraz poprzedniej wartości x. W celu pokazania, iż algorytm Verleta jest zgodny z równaniem (17), przekształcamy równanie (24) do postaci x n+1 x n h x n x n 1 h h = a n. (25) I znów, w granicy h 0 + odtwarzamy równanie (17). 8. Metody wielokrokowe. Metody Verleta 26

Z uwagi na to, że jest to metoda wielokrokowa, stabilność algorytmu Verleta bada się nieco inaczej niż stabilność dotad poznanych algorytmów. Dla uproszczenia notacji przyjmijmy na chwilę, iż interesuje nas wyłacznie przypadek jednowymiarowy. Propagacja błędu opisana jest wówczas równaniem ε n+1 = (2 + λ)ε n ε n 1, (26) gdzie λ = da/dx tn h 2. Równanie (26) możemy przedstawić w postaci [ εn+1 ε n ] = G [ εn ε n 1 ] = [ 2 + λ 1 1 0 ] [ εn ε n 1 ]. (27) Wielokrokowa propagacja błędu jest jednokrokowa w przestrzeni o odpowiednio większej ilości wymiarów! 8. Metody wielokrokowe. Metody Verleta 27

Widać zatem, iż algorytm Verleta jest stabilny, jeżeli g ± = 1 2 4λ 2 + λ ± + λ 2 < 1. (28) Rozważmy trzy przypadki: 1. 4 λ 0. Wówczas 4λ + λ 2 0. 4λ g ± = 1 + 2 2 1 λ ± i + λ 2, g ± 2 = = 1 + λ + 4 1 λ2 + 1 4 4λ + λ 2 = 1 + λ + 1 4 λ2 1 4 (4λ + λ2 ) 1. Algorytm jest zatem neutralnie (marginalnie) stabilny, co oznacza, że błędy nie sa co prawda tłumione, ale też nie narastaja i nie prowadza do rozbieżności. 8. Metody wielokrokowe. Metody Verleta 28

2. λ > 0. Wówczas g + > 1. 3. λ < 4. Wówczas g < 1. Rekapitulujac, dla ruchu jednowymiarowego klasyczny algorytm Verleta jest marginalnie stabilny dla da/dx tn h 2 [ 4, 0] i niestabilny poza tym przedziałem. 8. Metody wielokrokowe. Metody Verleta 29

Wady algorytmu Verleta Dziwne traktowanie prędkości prędkość w kroku n znana jest dopiero po obliczeniu położenia w kroku n + 1. W symulacjach znajomość prędkości nie jest potrzebna do obliczania sił, ale jest potrzebna do obliczania energii kinetycznej, temperatury, ciśnienia itp. Prędkość obliczana jest ze wzoru v n = x n+1 x n 1, (29) 2h We wzorze (24) różnica dwu dużych wyrażeń rzędu O(h 0 ) jest dodawana do małego wyrażenia rzędu O(h 2 ), co może prowadzić do znacznej utraty dokładności numerycznej. Zauważmy, że wyrażenie (29) jest symetryczne w czasie; próba obliczania v n = (x n x n 1 )/h łamałaby symetrię odwrócenia w czasie, a przecież równania mechaniki (bez sił zależnych od prędkości) sa mikroskopowo odwracalne! 8. Metody wielokrokowe. Metody Verleta 30

Algorytm leap frog ( żabiego skoku ) Spsobem na obejście (niektórych) trudności z algorytmem Verleta jest algorytm leap frog (Hockney 1970), w którym prędkości obliczane sa w czasach pośrednich pomiędzy położeniami : v ( t n + 1 2 h) = v ( t n 1 2 h) + ha n, (30a) x n+1 = x(t n + h) = x n + hv ( t n + 1 2 h). (30b) Prędkości obliczane sa według wzoru v n = 1 2 [ v ( tn 1 2 h) + v ( t n + 1 2 h)]. (31) Żaby wcale tak nie skacza. 8. Metody wielokrokowe. Metody Verleta 31

Zgodność algorytmu leap frog Aby sprawdzić czy algorytm leap frog jest zgodny, należy z (30) wyeliminować prędkości. Po podstawieniu pierwszego z równań (30) do drugiego dostajemy x n+1 = x n + hv ( t n 1 2 h) + h 2 a n. (32) Drugie z równań (30) przesunięte w tył w czasie daje Ostatecznie hv ( t n 1 2 h) = x n x n 1. (33) x n+1 = 2x n x n 1 + h 2 a n. (34) Równanie (34) ma taka sama postać co równanie (24), widzimy zatem, iż algorytm leap frog jest algebraicznie równoważny algorytmowi Verleta, a więc jest zgodny z równaniem (17). Nie oznacza to jednak, iż numeryczne rezultaty zastosowania obu tych algorytmów sa takie same! 8. Metody wielokrokowe. Metody Verleta 32

Stabilność algorytmu leap frog Wyrażenia na propagację błędu w algorytmie leap frog maja postać η n+1/2 = η n 1/2 + h Jε n, (35a) ε n+1 = ε n + h η n+1/2, (35b) gdzie J ij = a i / x j tn. Pod względem propagacji błędu metoda leap frog zachowuje się jak metoda pół-niejawna! Ostatecznie macierz wzomocnienia ma postać G = [ I hi h J I + h 2 J ]. (36) 8. Metody wielokrokowe. Metody Verleta 33

Dla przypadku jednowymiarowego otrzymujemy stad g ± = 2 + λ ± 4λ + λ 2 2, (37) gdzie, jak poprzednio, λ = da/dx tn h 2. Jest to identyczne z analogicznym wyrażeniem dla metody Verleta, a zatem własności stabilności metody leap-frog i metody Verleta sa co najmniej w przypadku jedowymiarowym identyczne. Co nie dziwi wobec algebraicznej równoważności tych metod. 8. Metody wielokrokowe. Metody Verleta 34

Cechy algorytmu leap frog: Różnica dwu dużych wielkości nie jest porównywana z mała. Prędkość w chwili t n jest znana w chwili t n, nie dopiero w chwili t n+1. Algorytm wymaga inicjalizacji (na przykład metoda Eulera z krokiem połówkowym). Przyspieszenia (siły) nie moga zależeć od prędkości. Prędkości nadal obsługiwane sa dość dziwacznie. 8. Metody wielokrokowe. Metody Verleta 35

Algorytm velocity Verlet Problemy z dziwacznym tarktowaniem prędkości rozwiazuje kolejna modyfikacja algorytmu Verleta, zwana velocity Verlet (Swope et. al. 1982): x n+1 = x n + h v n + 1 2 h2 a n, (38a) v n+1 = v n + 1 2 h ( a n + a n+1 ). (38b) Algorytm ten nie nadaje się do sił (przyspieszeń) zależnych od prędkości. 8. Metody wielokrokowe. Metody Verleta 36

Uogólniony algorytm velocity Verlet Okazuje się, że algorytm velocity Verlet można łatwo uogólnić (PFG): x n+1 = x n + h v n + αh 2 a n, (39a) v n+1 = v n + h ( α a n + (1 α)a n+1 ), (39b) gdzie α [0, 1]. 8. Metody wielokrokowe. Metody Verleta 37

Zgodność algorytmu (39) z równaniem (17) pokażemy eleiminujac z (39) prędkości. Odejmujac od pierwszego z równań (39) to samo równanie cofnięte o krok w czasie, dostajemy x n+1 = 2x n x n 1 + h ( v n v n 1 ) + αh 2 ( a n a n 1 ). (40) Z kolei na mocy drugiego z równań (39), v n v n 1 = h ( α a n 1 (1 α)a n ). (41) 8. Metody wielokrokowe. Metody Verleta 38

Ostatecznie x n+1 = 2x n x n 1 + h 2 ( α a n α a n 1 + α a n 1 + (1 α)a n ) = 2x n x n 1 + h 2 a n, (42) a więc znów dostajemy algebraiczna równoważność (uogólnionego) algorytmu velocity Verlet i klasycznego algorytmu Verleta. 8. Metody wielokrokowe. Metody Verleta 39

Propagacja błędu dla sił niezależnych od prędkości ma postać ε n+1 = ε n + hη n + αh 2 Jε n, (43a) η n+1 = η n + hα Jε n + h(1 α) Jε n+1, (43b) J jest jakobianem w kroku n, J jest jakobianem w kroku n+1. Jako macierz wzmocnienia dostajemy G = [ I + αh 2 J hi αh J + (1 α)h J(I + αh 2 J) I + (1 α)h 2 J ]. (44) W przypadku jedowymiarowym, niezależnie od wartości parametru α, dostajemy takie same współczynniki wzmocnienia, jak w metodach Verleta i leap frog, a zatem własności stabilności uogólnionej metody velocity Verlet sa takie same, jak i innych metod Verleta. 8. Metody wielokrokowe. Metody Verleta 40

Dla α = 1 algorytm (39) można stosować gdy przyspieszenia zależa od prędkości! x n+1 = x n + h v n + h 2 a n, (45a) v n+1 = v n + h a n, (45b) co można też zapisać jako v n+1 = v n + h a n, (46a) x n+1 = x n + h v n+1. (46b) W tym wypadku macierz wzmocnienia ma postać [ I + h G = 2 J x h I + h 2 J v h J x I + h J v ], (47) 8. Metody wielokrokowe. Metody Verleta 41

gdzie J x, J v oznaczaja, odpowiednio, jakobiany po położeniach i prędkościach. W przypadku jednowymiarowym dostajemy ( ) g ± = 1 2 2 + λ + γ ± 4λ + (λ + γ) 2, (48) gdzie λ = a/ x tn h 2, γ = a/ v tn h. Dla γ = 0 (przyspieszenia nie zależa od prędkości) daje to oczywiście to samo, co inne metody Verleta, czyli marginalna stabilność dla λ [ 4, 0], γ = 0. Dla γ < 0 i λ < 0 otrzymujemy ograniczony obszar absolutnej stabilności. 8. Metody wielokrokowe. Metody Verleta 42

Obszar stabilności dla uogólnionej metody velocity Verlet w przypadku jednowymiarowym 0.0-0.2-0.4 γ -0.6-0.8-1.0-1.2-4.0-3.5-3.0-2.5-2.0-1.5-1.0-0.5 0.0 λ 8. Metody wielokrokowe. Metody Verleta 43

Inna modyfikacja algorytmu velocity Verlet Opublikowano kilka modyfikacji algorytmu Verleta przeznaczonych do rozwia- zywania równań z przyspieszeniami (siłami) zależnymi od prędkości. Najczęściej używana pochodzi z pracy R. D. Groot, P. B. Warren, Dissipative particle dynamics: Bridging the gap between atomistic and mesoscopic simulations, J. Chem. Phys. 107, 4423 (1997). Jest to algorytm typu predyktor-korektor: x n+1 = x n + hv n + 1 2 h2 a n, (49a) predyktor: ṽ = v n + βha n, (49b) ã = a ( x n+1, ṽ ), (49c) korektor: v n+1 = v n + 1 2 h ( a n + ã ), (49d) gdzie β [0, 1]. W przeciwieństwie do algorytmu (45), algorytm (49) wymaga dwu obliczeń przyspieszenia na krok czasowy. 8. Metody wielokrokowe. Metody Verleta 44