338
8. Równania różniczkowe
Pomocą
gdzie f(x, v (*)) apr oksym uje się wiclojniar.cni inlcipolacyjnym określonym za
wartości...../„-* w przypadku wzoru Adamsa-Bashlbrtha i za pomocą wartość
/•+u/«» •••»/»-*+! w przypadku wzoru Adamsa-Moultona. Błędy lokalne $ą w przybli* żeniu równe pierwszym odrzuconym składnikom. Dowód obu wzorów jest treścią zadań; 1 z § 7.6.
Powyższą metodę ostatnio zmodyfikowano tak, aby ułatwić swobodną zmianę długości kroku. Gcar [108], str. 155 i nast., daje program dla zmodyfikowanej metody Adamsa z automatycznym sterowaniem zarówno długością kroku, jak i stopniem wieicmanu interpolacyjnego, co jest bardzo istotną zaletą tego pregramu.
Według testów porównawczych przeprowadzonych w wielu ośrodkach naukowych metoda ta i metoda Bulirscha-Slccra należą do najskuteczniejszych. Wybierając któryś z algorytmów, trzeba też uświadomić sobie, że wiele zadań ir.ożna rozwiązać tanim kosztem za pomocą dowolnej metody (być może z wyjątkiem metody Eulera bez ekstrapolacji); wobec tego zaś od prędkości obliczeń mogą być ważniejsze inne względy, np. wygoda użytkowania programu, sposób traktowania sytuacji wyjątkowych (osobliwości) itd. Jeśli zadanie ma być rozwiązane np. w dużym przedziale lub dla w'iełu kombinacji wartości parametrów, to do jego rozwiązania trzeba się przygotować staranniej i trzeba sięgnąć do opracowań monograficznych takich, jak np. Gear (108).
8.3.5. Zadania sztywne
Istnieje taka klasa zadań, dla której wszystkie poprzednio opisane metody wymagają użycia znacznie krótszego kroku, niż by to wynikało z kształtu rozwiązania.
Przykład 8.3.6.
dv
— *=100(8inx—y), >(0)=0.
dx
Rozwiązanie dokładne:
, s sinx —0.01 cosx-ł-O.OIe“100*
v(x)=.......... ..
' 1.0001
Zauważmy, że składnik wykładniczy'jest mniejszy od 10“6 już dla *=0.1. Można oczekiwać, że dla *>0.1 będzie dopuszczalna długość kroku h = 0.1. Okazuje się jednak, 2® metoda Rungego-Kutty z różnymi długościami kroku daje następujące wyniki dla *■**-.■•
0.030
100
6.7-1Ó*’
Długość kroku 0.015 0.020 0.025
Liczba kroków 200 150 120
v(3f h) 0.151004 0.1509% 0.150943
0=0.030 powoduje prz*'
Widzimy, że krok A =0.025 daje dobry wynik, natomiast krok rażającą niestabilność numeryczną.