Metody matematyczne w inżynierii chemicznej Wykład 3. Całkowanie numeryczne
Graficzna definicja całki oznaczonej P ab
ab x1x1 x2x2 f(x)f(x) x y PiPi
Metoda prostokątów a b x2x2 x y PiPi x1x1 x0x0 xixi x i+1 xNxN
Błąd metody zależność u(x)= przybliżamy (aproksymujemy) inną funkcją U(x, h) = Wymagane jest by funkcja "zastępcza" dla h 0 była zbieżna do u(x). Oznacza to, że różnica (Residuum) R musi dążyć do 0 dla h dążącego do 0
Błąd metody Dla metody istotne jest jak szybko zmniejsza się R, co można zapisać n – dodatnia liczba całkowita oznaczająca rząd metody Dla jednego kroku metoda prostokątów ma rząd n = 2 Wielokrotne użycie każdej z metoda zmniejsza rząd o 1 (kwadratura złożona) Ostatecznie
Metoda trapezów a b x2x2 x y PiPi x1x1 x0x0 xixi x i+1 xNxN
Metoda trapezów Ostateczny wzór na obliczanie całki metodą trapezów:
Metoda trapezów algorytm 1.Przeczytaj granice całkowania, x 0 i x N 2.Przeczytaj ilość podziałów N 3.Oblicz h = (x 0 - x 1 )/N 4.Oblicz y 0 i y N 5.Oblicz P = h/2(y 0 + y N ) 6.Przyjmij i = 1 7.Oblicz x i = x 0 +ih 8.Oblicz y i 9.Oblicz P = P + hy i 10.Zwiększ i o 1 (i=i+1) 11.Jeżeli i N-1 to idź do p Drukuj P 13.Koniec
x i = x 0 +ihi = 1 Metoda trapezów schemat blokowy start i N-1 Drukuj P koniec h = (x 0 +x N )/N Czytaj N, x 0,x N P = h/2(y 0 + y N )P = P + hy i i = i y 0 = y(x 0 ) y N = y(x N ) y i = y(x i ) 1 y(x) y = funkcja x powrót
Metoda trapezów program 5 DEF FNy(x) = funkcja x 10 INPUT "Podaj granice całkowania"; x0, xN 20 INPUT "Podaj ilość podziałów N:"; N 30 h = (xN – x0)/N 40 y0 = FNy(x0): yN = FNy(xN) 50 P = h/2*(y0+yN) 60 FOR i= 1 to N-1 70 xi = x0 + i*h 80 yi = FNy(xi) 90 P = P + h*yi 100 NEXT i 110 PRINT "Wartość całki to:"; P 120 END
Metoda Simpsona x0x0 x0+hx0+h x 0 +2h P y0y0 y2y2 y1y1
Metoda Simpsona Inna postać:
Metoda Simpsona 1.n 2 2.n = 2k, gdzie k to dowolna liczba naturalna Warunki jakie musi spełniać ilość podziałów n:
Metoda Simpsona program 10 DEF FNy(x) = jakaś funkcja x 20 INPUT "Podaj granice całkowania:"; x0, xN 30 INPUT "Na ile części podzielić przedział (liczba parzysta)"; N GOTO IF (INT(N/2)-N/2) <> 0 THEN PRINT "N nie jest liczbą parzystą": GOTO h = (xN-x0)/N 60 P = h/3*(FNy(x0)+FNy(xN)) 70 FOR i = 1 TO N-1 80 xi = x0 + i*h 90 P = P + h/3*(3+(-1)^(i+1))*FNy(xi) 100 NEXT i 110 PRINT "Całka ma wartość: "; P 120 END
Metoda Romberga/Richardsona Modyfikacja metody trapezów Zwiększenie dokładności poprzez zastosowanie ekstrapolacji
Metoda Romberga Granice całkowania dzielimy na N części to Przybliżoną wartość całki określa wzór: Jeżeli krok zmniejszymy 2-krotnie: W ten sam sposób obliczmy: Jest oczywiste, że dla N otrzymamy wynik pozbawiony błędu metody. Pozostaje problem błędu zaokrąglenia!
Metoda Romberga Utwórzmy nowy ciąg zgodnie z równaniami: itd. Można wykazać, że ciąg taki jest szybciej zbieżny niż ciąg pierwotny.
Metoda Romberga Można utworzyć ciąg: itd. który jest jeszcze szybciej zbieżny. Ogólnie
Metoda Romberga Obliczenie przy znanym x0x0 x1x1 xixi x i+1 y0y0 y1y1 yiyi y i+1 x 1/2 x 3/2 x (2i+1)/2 y 1/2 y 3/2 y (2i+1)/2
Metoda Romberga przykład Obliczyć całkę oznaczoną: 0,
Ekstrapolacja Richardsona Opiera się na obliczeniu całki przy podziale przedziału na m 1 i m 2 części. Uzyskując dwa przybliżenia I 1 i I 2, dokładniejszą całkę Stanowi wyjście do metody Romberga
Szacowanie błędu całkowania numerycznego Ogólny wzór na przybliżoną całkę oznaczoną: Jeżeli obliczymy wartość całki dla dwóch kroków o długości h 1 = h oraz h 2 = h/2
Szacowanie błędu całkowania numerycznego błąd metody jest funkcją kroku: Podstawiając h: - Poszukujemy tylko wartości A Zakładamy, że h jest bardzo małe
Szacowanie błędu całkowania numerycznego
Całki i kwadratury czyli odrobina teorii
Kwadratury Newtona-Cotese’a Metoda trapezów i Simpsona należy do kwadratur Newtona-Cotese’a Mają one równoodległe węzły
Kwadratury Newtona-Cotese’a Dla w(x)=1
Kwadratury Gause’a – Legendre’a Gause’a – Legendre’a Nierówne odstępy węzłów Dla przedziału –1,1
Kwadratury Gause’a – Legendre’a Gause’a – Legendre’a
Kwadratury Gause’a – Legendre’a Gause’a – Legendre’a - błąd P n (x) – wielomian Legendre’a
Metoda Monte Carlo
Zasada metody a ab f max (x)
Generowanie punktów Generuje się współrzędne x i y Wykorzystuje się liczby losowe ( l.l. ) o rozkładzie jednostajnym Domyślny generator ma zakres 0-1 Współrzędna x = a + l.l.*(b-a) Współrzędna y = l.l.*f max (x)
Obliczanie ilości trafień Wylosowany punkt o współrzędnych (x i, y i ) jest trafiony jeżeli:
Dokładność Dokładność metody zależy od: Ilości wygenerowanych punktów Jakości generatora liczb losowych
Algorytm 1.Podaj granice całkowania i funkcję f 2.Podaj ilość losowań N 3.I,j=0 4.Znajdź wartość f max w przedziale 5.X=a+rnd*(b-a) 6.Y=rnd*f.max 7.I=I+1 8.Jeżeli Y<=f(X) to j=j+1 9.Jeżeli i<N to idź do 5 10.P=j/n*(b-a)*f max 11.Drukuj P
Numeryczne obliczanie pochodnych
Pochodne funkcji w punkcie x1x1 x0x0 x2x2
Pochodne centralne-
Pochodne centralne O(h 2 )
Pochodne centralne O(h 3 )
Pochodne w przód/w tył O(h)
Pochodne w przód/w tył O(h 2 )
Pochodne w przód/w tył O(h 3 )
Zastosowanie numerycznego obliczania pochodnej w algorytmie znajdowania pierwiastków metodą Newtona
1. Wprowadzić punkt startowy x 1 oraz dokładność 2. Obliczyć y 1 3. Obliczyć y' 1 4. Obliczyć 5. Jeżeli | x 2 - x 1 | to drukuj x 2, koniec. 6. x 1 = x 2 7. Powrót do punktu 2 8. Koniec. Algorytm metody Newtona
3.1 Przyjąć krok h = Obliczyć y 0 = f(x-h) 3.3 Obliczyć y 2 = f(x+h) 3.4 Obliczyć y' = (y 2 - y 0 )/(2h) 3.5. Sprawdzić, czy y' nie jest równe 0. Jeżeli tak drukuj informację "zły punkt startowy" i zakończ program. Algorytm obliczenia pochodnej