Metody numeryczne w chemii Błędy w obliczeniach numerycznych. Interpolacja wielomianowa. Różniczkowanie i całkowanie numeryczne. Rozwiązywanie układów równań liniowych. Znajdowanie miejsc zerowych funkcji. Minimalizacja funkcji jednej i wielu zmiennych. Znajdowanie wartości własnych i wektorów własnych macierzy. Rozwiązywanie równań różniczkowych zwyczajnych. Transformacja Fouriera.
Literatura: Z. Fortuna, B. Macukow, J. Wąsowski. “Metody numeryczne”, WNT, Warszawa. J. i M. Jankowscy. ”Przegląd metod i algorytmów numerycznych”, WNT, Warszawa. J. Stoer. “Wstęp do metod numerycznych” PWN, Warszawa. J. Czermiński, A. Iwasiewicz, Z. Paszek, A. Sikorski, “Metody statystyczne w doświadczalnictwie chemicznym”, PWN, Warszawa.
Rodzaje błędów w obliczeniach Błędy danych wejściowych (np. wielkości mierzonych) xexp=x*+e Błędy zaokrągleń rd(x)=x(1+e) Błędy obcięcia exp(x)=1+(1/1!)x+(1/2)x2+(1/3!)x3+…
Stałoprzecinkowa reprezentacja liczby (na ogół dziesiętna) x = ±a1a2a3…am·b1b2b3…bn Zmiennoprzecinkowa reprezentacja liczby (dwójkowa) x = ±m1m2m3…mt x 2±c1c2c2…cs w sumie t+s+2 bitów
Sformułowanie zadania obliczeniowego a – wektor danych w – wektor wyników w = F(a) np. a=(a,b,c), w=(x1,x2): ax2+bx+c=0
Zadanie jest dobrze postawione jeżeli dla danego wektora danych a wektor wyników w jest jednoznacznie określony. Przykład zadania źle postawionego: a = (e,r); w = (x,y): x2+ey2=r2
Uwarunkowanie zadania Wi[a1(1+e1),a2(1+e2),…,an(1+en)] » Wi(a1,a2,…,an)+(¶W/¶a1)a1e1+(¶W/¶a2)a2e2+ … + (¶W/¶an)anen dWi/Wi =(¶W/¶a1)a1/Wie1+(¶W/¶a2)a2/Wie2 … + (¶W/¶an)an/Wien (¶W/¶aj)aj jest wskaźnikiem uwarunkowania Wi ze względu na aj.
Lemat Wilkinsona fi(xÄy) – operacja stałoprzecinkowa (fixed point operation) fl(xÄy) – operacja zmiennoprzecinkowa (floating point operation) fl(x1±x2)=x1(1+e1)±x2(1+e2) fl(x1x2)=x1(1+e3)x2 fl(x1/x2)=x1(1+e4)x2=x1/x2(1+e5)
Algorytm – ciąg skończony operacji elementarnych prowadzących do otrzymania wektora wyników z wektora danych. Algorytm jest poprawnie sformułowany jeżeli zawsze daje się zrealizować w skończonej liczbie kroków. Algorytm jest numerycznie stabilny jeżeli wynik dąży do poprawnego rozwiązania w miarę zwiększania precyzji obliczeń.
Przykład niepoprawnego algorytmu x0=a while (abs(x1-x0)>delta) do begin x0=x1 x1=0.5*(x0+a/x0) end
Przykład algorytmu niestabilnego i stabilnego
Parę pojęć dotyczących obliczeń numerycznych Dokładność maszynowa: najmniejsza liczba większa od zera która dodana do jedności daje wynik większy od jedności. Overflow: otrzymano liczbę większą od największej zapamiętywanej przez maszynę. Underflow: otrzymana liczba jest zbyt mała i zapamiętywane jest zero. NaN (not a number): wynik nie jest liczbą (np. 1/0)