Adaptacyjny rozmiar kroku

W matematyce i analizie numerycznej adaptacyjny rozmiar kroku jest stosowany w niektórych metodach numerycznego rozwiązywania równań różniczkowych zwyczajnych (w tym w szczególnym przypadku całkowania numerycznego ) w celu kontrolowania błędów metody i zapewnienia stabilności właściwości, takich jak A- stabilność . Zastosowanie adaptacyjnej wielkości kroku ma szczególne znaczenie, gdy występuje duża zmienność wielkości pochodnej. Na przykład podczas modelowania ruchu satelity wokół Ziemi jako standardowej orbity Keplera wystarczająca może być metoda stałych kroków czasowych, taka jak metoda Eulera . Jednak sytuacja jest trudniejsza, jeśli chce się modelować ruch statku kosmicznego, biorąc pod uwagę zarówno Ziemię, jak i Księżyc, jak w problemie trzech ciał . Tam pojawiają się scenariusze, w których można wykonać duże kroki czasowe, gdy statek kosmiczny jest daleko od Ziemi i Księżyca, ale jeśli statek kosmiczny zbliży się do zderzenia z jednym z ciał planetarnych, potrzebne są małe kroki czasowe. Metoda Romberga i Runge – Kutta – Fehlberg to przykłady metod całkowania numerycznego, które wykorzystują adaptacyjny rozmiar kroku.

Przykład

Dla uproszczenia w poniższym przykładzie zastosowano najprostszą metodę całkowania, metodę Eulera ; w praktyce preferowane są metody wyższego rzędu, takie jak metody Runge-Kutty, ze względu na ich doskonałe właściwości zbieżności i stabilności.

Rozważ problem wartości początkowej

gdzie y i f mogą oznaczać wektory (w takim przypadku to równanie reprezentuje system sprzężonych ODE w kilku zmiennych).

Mamy daną funkcję f ( t , y ) i warunki początkowe ( a , y a ) i jesteśmy zainteresowani znalezieniem rozwiązania w t = b . Niech y ( b ) oznacza dokładne rozwiązanie w b i niech y b oznacza rozwiązanie, które obliczamy. Piszemy , gdzie jest w rozwiązaniu numerycznym.

Dla ciągu ( t n ) wartości t , przy czym t n = a + nh , metoda Eulera daje przybliżenia odpowiednich wartości y ( t n ) jako

Lokalny błąd obcięcia tego przybliżenia jest określony przez

a na podstawie twierdzenia Taylora można wykazać, że (pod warunkiem, że f jest wystarczająco gładkie) lokalny błąd obcięcia jest proporcjonalny do kwadratu wielkości kroku:

gdzie c jest pewną stałą proporcjonalności.

Oznaczyliśmy to rozwiązanie i jego błąd za .

Wartość c nie jest nam znana. Zastosujmy teraz ponownie metodę Eulera z inną wielkością kroku, aby wygenerować drugie przybliżenie do y ( t n +1 ). Otrzymujemy drugie rozwiązanie, które oznaczamy za . Przyjmij nowy rozmiar kroku równy połowie pierwotnego rozmiaru kroku i zastosuj dwa kroki metody Eulera. To drugie rozwiązanie jest przypuszczalnie dokładniejsze. Ponieważ musimy dwukrotnie zastosować metodę Eulera, błąd lokalny jest (w najgorszym przypadku) dwukrotnie większy od błędu pierwotnego.

zakładamy całym przedziale W rzeczywistości jego tempo zmian jest proporcjonalne do . Odejmując rozwiązania daje oszacowanie błędu:

To oszacowanie błędu lokalnego jest dokładne trzeciego rzędu.

Oszacowanie błędu lokalnego można wykorzystać do podjęcia decyzji, w jaki sposób należy zmodyfikować rozmiar kroku, pożądaną dokładność. Na przykład, jeśli dozwolona jest lokalna tolerancja , moglibyśmy pozwolić h ewoluować jak:

0,9 jest współczynnikiem bezpieczeństwa zapewniającym sukces przy następnej próbie Minimalne i maksymalne mają zapobiegać ekstremalnym zmianom w stosunku do poprzedniego kroku. Powinno to w zasadzie dać błąd około przy następnej próbie. Jeśli uważamy krok za udany, a oszacowanie błędu służy do ulepszenia rozwiązania:

To rozwiązanie jest w rzeczywistości dokładne trzeciego rzędu w zakresie lokalnym (drugie zamówienie w zakresie globalnym), ale ponieważ nie ma dla niego oszacowania błędu, nie pomaga to w zmniejszeniu liczby kroków. Ta technika nazywa się ekstrapolacją Richardsona .

Zaczynając od początkowego rozmiaru kroku ta ułatwia naszą kontrolowaną integrację ODE od punktu \ optymalnej liczby kroków biorąc pod uwagę lokalną tolerancję błędów. Wadą jest to, że rozmiar kroku może stać się zbyt mały, zwłaszcza przy użyciu metody Eulera niskiego rzędu .

Podobne metody można opracować dla metod wyższego rzędu, takich jak metoda Runge-Kutty czwartego rzędu. Globalną tolerancję błędów można również osiągnąć, skalując błąd lokalny do zasięgu globalnego.

Osadzone oszacowania błędów

Adaptacyjne metody wielkości stopni, które wykorzystują tak zwane „osadzone” oszacowanie błędu, obejmują metody Bogackiego – Shampine , Runge – Kutta – Fehlberg , Cash – Karp i Dormand – Prince . Metody te są uważane za bardziej wydajne obliczeniowo, ale mają niższą dokładność oszacowań błędów.

Aby zilustrować idee metody osadzonej, rozważmy następujący schemat, który aktualizuje: :

sol - .

RK obliczenie obejmuje metodę RK niższego rzędu . Błąd można wtedy po prostu zapisać jako

to nieznormalizowany błąd. Aby ją znormalizować, porównujemy ją z tolerancją zdefiniowaną przez użytkownika, która składa się z tolerancji bezwzględnej i tolerancji względnej:

Następnie porównujemy znormalizowany błąd 1, aby uzyskać przewidywany : mi :

Parametr q to kolejność odpowiadająca metodzie RK ma niższy rząd Powyższa formuła przewidywania jest wiarygodna w tym sensie, że zwiększa krok, jeśli oszacowany błąd lokalny jest mniejszy niż tolerancja, aw przeciwnym razie zmniejsza krok.

Powyższy opis jest uproszczoną procedurą stosowaną w sterowaniu stopniem dla solwerów typu explicit RK. Bardziej szczegółowe leczenie można znaleźć w podręczniku Hairera. Solver ODE w wielu językach programowania wykorzystuje tę procedurę jako domyślną strategię adaptacyjnego sterowania krokowego, która dodaje inne parametry techniczne, aby system był bardziej stabilny.

Zobacz też

Dalsza lektura

  •   William H. Press, Saul A. Teukolsky, William T. Vetterling, Brian P. Flannery, Przepisy numeryczne w C , wydanie drugie, CAMBRIDGE UNIVERSITY PRESS, 1992. ISBN 0-521-43108-5
  •   Kendall E. Atkinson, Analiza numeryczna , wydanie drugie, John Wiley & Sons, 1989. ISBN 0-471-62489-6