Laboratorium z Równań Różniczkowych zwyczajnych (*) - do wykładu prof. Krzysztofa Moszyńskiego

wiosna 2002, czwartki godz. 16:15  (co drugi tydzień, pierwsze zajęcia: 21/02/2002 - termin mogą się zmienić w trakcie semestru np z powodu świąt).

Zaliczenie lab (nieobowiązkowe daje do max. 15 pktów) albo kolokwium albo projekt - (2 możliwości)
Zaliczenie projektu musi nastąpić przed końcem semestru - ostatni termin labu - 20/05/2002.
  1. napisanie schematów różnicowych (w C, C++ albo Pascalu, ewentualnie maple'u)  Eulera otwartego, otwartego  Rungego Kutty otw 4 rzędu i schematu ze zmiennym krokiem całkowania wg książki: Andrzej Palczewski Równania Różniczkowe zwyczajne,  Teoria i metody numeryczne z wykorzystaniem komputerowego systemu obliczeń symbolicznych. , WNT, Warszawa 1999, rozdział  5.2, str. 151-155. Program powinien mieć opcję   umieszczania wyników  w pliku z którego można  wyświetlać rozwiązania przy pomocy np GNUplota. Poza tym należy zaprezentować wyniki obliczeń dla równań ze znanymi rozwiązaniami i porównywać je z rozwiązaniem dokładnym (dla wszystkich schematów równocześnie) tzn obliczać |x_n(s) - x(t_n)| dla x_n (s) - wynik obl. schematu (s) dla t_n=t_0 + n*h, x() - rozwiązanie dokładne, s - Euler otw, R-K4, Schem. zm. krok,  oraz wyświetlając wykresy x,x_n (s) . Przykładowy kod dla schematu Eulera otwartego w C schemat.c    - oblicza rozwiązanie i szacuje rząd schematu (dla takiego równania dla którego znamy rozwiązanie), część wynikół  obliczeń jest  nagrywana do plików sol.txt i error.txt. Program gnuplot (wywolywany z linii poleceń jako gnuplot umożliwia wyświetlenie danych zawartych w tych plikach (np. plot "error.txt " z linii poleceń gnuplota).
  2. prosta metoda strzałów dla równania liniowego  y''= f(x) z warunkami brzegowymi y(a)=c, y(b)=d (a<b, c,d, rzeczywiste) z wykorzystaniem schematu otwartego Runge-Kutta rzędu 4. Testować dla różnych f np sin x, exp(x)/x, exp(x)  itd  Można też porównać wynik metody z rozwiązaniem dokładnym o ile jesteśmy je w stanie wyliczyć: np podstawiając daną fukcję do równania dostajemy f i war. brzegowe: sin x jest rozwiązaniem równania y''= -sin(x)  x(0)=x(Pi)=0.  Wyniki podawać numerycznie i graficznie przy pomocy GNUplota, można skorzystać ze wskazówek z pkt 1.