Wyzwanie numeryczne

...czyli czy warto wiedziec cos wiecej o metodach numerycznych?


Rozwazmy rownanie

dla 0 < t < T. Przy pomocy Maple V latwo (w jaki sposob?) konstruujemy widok pola wektorowego zwiazanego z tym rownaniem:

Nietrudno domyslic sie, ze dla a z przedzialu (-1, 0) rozwiazanie rownania bedzie zbiegalo do rozwiazania stacjonarnego x(t) = -1. Narzedzia DEtools daja mozliwosc numerycznego wyznaczenia krzywej calkowej dla danego warunku poczatkowego, np. a = -0.5, wiec zobaczmy, czy nasze intuicje sa dobre:

DEplot( diff(x(t),t) = t + t/x(t), x(t), t=0..2, {[0,-1],[0,-0.5]}, x=-2..2, arrows = THIN );

Rzeczywiscie, wszystko wyglada zgodnie z przewidywaniami. Sprawa wyglada trywialnie i mogloby sie zdawac, ze odpowiedz na pytanie wstepne (czy warto?...) jest negatywna: nie warto, przeciez wszystko moze za nas zrobic (zapewne lepiej) Maple! Aby sie ostatecznie o tym przekonac, sprobujmy pociagnac dalej w czasie nasza krzywa calkowa.Zapewne dla wiekszych czasow nie zobaczymy nic ciekawego, ale na wszelki wypadek sprawdzmy (T = 10):

Niestety!! Mimo, ze dokladne rozwiazanie naprawde (jak to sprawdzic w Maple V ?) zbiega do -1, to nasze rozwiazanie numeryczne oszalalo!! Jest to oczywiscie wina metody calkowania  uzytej przez procedure DEplot(). Na czym polega podstawowa "niezrecznosc" tej procedury? (widac juz z obrazka).

Dla nas wyzwanie: napisac (kiedys) program, ktory bedzie rozsadnie sie zachowywac na tym rownaniu rowniez dla duzych czasow T...