oraz f x x x x
Transkrypt
oraz f x x x x
Metody Numeryczne i Programowanie Wykład 5. Strona 1 z 33 Metody numerycznego różniczkowania funkcji (1) Iloraz różnicowy f ′( x 0 ) = f (x 0 + h ) − f (x 0 ) . h (5.1) Celem oszacowania pierwszej pochodnej konieczna jest znajomość wartości funkcji w dwóch punktach –metoda dwupunktowa. Założenia - funkcja f jest ciągła w przedziale domkniętym [a, b]; - funkcja f ma ciągłą pierwszą i drugą pochodną, co zapisujemy f ∈ C 2 [a, b] . - dane są pewne punkty x i −1 , x i , x i +1 ∈ [a , b] takie, że x i − x i −1 = x i +1 − x i = h , gdzie h ≠ 0 jest pewną małą liczbą. Mariusz B. Bogacki Zakład Inżynierii Procesowej Wydział Technologii Chemicznej PP Strona 1 2009-02-26 Metody Numeryczne i Programowanie Wykład 5. Strona 2 z 33 Metody numerycznego różniczkowania funkcji (2) Iloraz różnicowy - wyprowadzenie W przedziale [xi, xi+1] wyznaczamy wielomian interpolacyjny Lagrange’a pierwszego stopnia postaci interpolujący różniczkowaną funkcję: Pi ,1 ( x ) = x − x i +1 x − xi f (x i ) + f ( x i +1 ) = x i − x i +1 x1 − x i x − xi − h x − xi = f (x i ) + f ( x i + h ), −h h (5.2) gdzie h = x i − x i −1 = x i +1 − x i . Uwzględniając wyrażenie na błąd obcięcia w interpolacji wielomianami Lagrange’a możemy zapisać: f ( x ) = Pi ,1 ( x ) + (x − x i )(x − x i +1 ) 2! f ′′(ξ ( x )) = (x − x i )(x − x i − h ) ′′ x − xi x − xi − h f (x i + h ) + f (ξ ( x )), f (x i ) + = h 2! −h (5.3) gdzie ξ ( x ) ∈ [x i , x i +1 ] = [x i , x i + h ]. Różniczkując wyrażenie (5.3) otrzymamy: f ( x i + h ) − f ( x i ) d ⎡ ( x − x i )( x − x i − h ) ⎤ + f ′′(ξ ( x ))⎥ = ⎢ 2! h dx ⎣ ⎦ f ( x i + h ) − f ( x i ) 2( x − x i ) − h f ′′(ξ ( x )) + = + h 2 (x − x i )(x − x i − h ) d ′′ ( f (ξ (x ))) = + dx 2 f ( x i + h ) − f ( x i ) 2( x − x i ) − h f ′′(ξ ( x )) + = + h 2 (x − x i )(x − x i − h ) ′′′ f (ξ ( x )) ⋅ ξ ′( x ). + 2 f ′( x ) = (5.4) gdzie ξ ( x ) ∈ [x i , x i +1 ] = [x i , x i + h ]. Mariusz B. Bogacki Zakład Inżynierii Procesowej Wydział Technologii Chemicznej PP Strona 2 2009-02-26 Metody Numeryczne i Programowanie Wykład 5. Strona 3 z 33 Metody numerycznego różniczkowania funkcji (3) Iloraz różnicowy - wyprowadzenie W węźle interpolacji – dla x = xi otrzymamy f ′( x i ) = f (xi + h ) − f (xi ) h − f ′′(ξ ( x )) . h 2 (5.5) gdzie ξ ( x ) ∈ [x i , x i +1 ] = [x i , x i + h ]. Błąd obcięcia w metodzie wykorzystującej iloraz różnicowy jest O(h). Oznacza to, że dla małych h taki iloraz różnicowy może być użyty do aproksymacji f’(xi) z błędem nie większym od h M gdzie M = max f ′′( x ) . x∈[a ,b ] 2 Mariusz B. Bogacki Zakład Inżynierii Procesowej Wydział Technologii Chemicznej PP Strona 3 2009-02-26 Metody Numeryczne i Programowanie Wykład 5. Strona 4 z 33 Metody numerycznego różniczkowania funkcji (4) Iloraz różnicowy - różne warianty formuły (5.5) : - metoda różnicowa progresywna h > 0: f ′( x i ) = f (xi + h ) − f (xi ) h − f ′′(ξ ( x )) . h 2 (5.5) gdzie ξ ( x ) ∈ [x i , x i +1 ] = [x i , x i + h ]. - metoda różnicowa wsteczna h < 0: f ′( x i ) = f (x i ) − f (x i − h ) h − f ′′(ξ ( x )). , h 2 (5.6) gdzie ξ ( x ) ∈ [x i −1 , x i ] = [x i − h, x i ] - metoda różnicowa centralna: f ′( x i ) = f ( x i +1 ) − f (x i −1 ) h 2 + f ′′′(ξ ( x )) = 6 x i +1 − x i −1 f (x i + h ) − f (xi − h ) h 2 f ′′′(ξ ( x )), = + 2h 6 (5.10) gdzie ξ ( x ) ∈ [x i −1 , x i +1 ] = [x i − h, x i + h ] . Mariusz B. Bogacki Zakład Inżynierii Procesowej Wydział Technologii Chemicznej PP Strona 4 2009-02-26 Metody Numeryczne i Programowanie Wykład 5. Strona 5 z 33 Metody numerycznego różniczkowania funkcji (5) Iloraz różnicowy – interpretacja geometryczna f(x) f'(xi) MRC MRW xi xi-1 xi+1 MRP Rysunek 5.1. Interpretacja geometryczna trzech metod różnicowych. Czerwona linia ciągła – funkcja f(x); – styczna w punkcie xi - f ′( x i ) ; – metoda różnicowa centralna (MRC); ♦ – metoda różnicowa progresywna (MRP); ▲ – metoda różnicowa wsteczna (MRW). Mariusz B. Bogacki Zakład Inżynierii Procesowej Wydział Technologii Chemicznej PP Strona 5 2009-02-26 Metody Numeryczne i Programowanie Wykład 5. Strona 6 z 33 Metody numerycznego różniczkowania funkcji (6) Iloraz różnicowy – przykład Przykład 5.1 Aproksymować wartość pierwszej pochodnej funkcji f ( x ) = ln ( x ) w punkcie x0 = 1.8 oraz oszacować błąd aproksymacji. Wartość dokładna f’(1.8) = 0.555555(6). Rozwiązanie Tabela 5.1. Wyniki aproksymacji pochodnej funkcji f ( x ) = ln ( x ) dla różnych wartości kroku h. Błąd bezwzględny δ = f (1.8 + h ) − f (1.8) δ − f ′(1.8) , względny ε = . h f ′(1.8) h f (1.8 + h ) − f (1.8) h Błąd bezwzględny δ Błąd względny ε Błąd obcięcia 0.1 0.5406722 1.4883343E-2 2.67900E-2 1.54321E-2 0.01 0.5540180 1.5375180E-3 2.76753E-3 1.54321E-3 0.001 0.5554013 1.5426386E-4 2.77675E-4 1.54321E-4 Błąd obcięcia: hf ′′(ξ ) 2 = h 2ξ Ponieważ: f ′( x ) = 2 ≤ max 1.8 ≤ξ ≤1.8 + h h 2ξ 2 = h 2(1.8) 2 . −1 1 oraz f ′′( x ) = 2 . x x ■ Mariusz B. Bogacki Zakład Inżynierii Procesowej Wydział Technologii Chemicznej PP Strona 6 2009-02-26 Metody Numeryczne i Programowanie Wykład 5. Strona 7 z 33 Metody numerycznego różniczkowania funkcji (7) Przykład 5.2. Dana jest funkcja f ( x ) = 2 x . Wykorzystując trzy różne metody różnicowe aproksymować wartość pierwszej pochodnej tej funkcji w punkcie x0 = 3. W obliczeniach przyjąć różne długości kroku: h = 0.1, 00.1 oraz 0.001. Oszacować błąd obcięcia zakładając, że aproksymacja wykonywana jest w przedziale domkniętym [2.5, 3.5]. Wartość dokładna f ′( x 0 ) = 2 x0 ⋅ ln (2 ) = 2 3 ⋅ 0.693 = 5.545 . Rozwiązanie Oszacowanie błędu obcięcia w metodach różnic progresywnych i różnic wstecznych: h ⋅ f ′′(ξ ) 2 ⎛h ⎞ 2 ⋅ 2ξ ⋅ (ln (2)) ≤ max ⎜⎜ ⋅ 2ξ ⋅ (ln (2))⎟⎟ = 2.5 ≤ ξ ≤ 3.5 2 2 ⎝ ⎠ 23.5 = ⋅ (ln (2 )) ⋅ h = 2.718 ⋅ h , 2 = h Tabela 5.2. Błąd bezwzględny aproksymacji δ = ~f ′(3) − f ′(3) , gdzie ~ ′( ) f 3 jest aproksymowaną wartością pierwszej pochodnej za pomocą jednej z badanych metod różnicowych. h Metoda różnic progresywnych Metoda różnic wstecznych Metoda różnic centralnych Pochodna δ Pochodna δ Pochodna δ 0.1 5.742 1.967E-1 5.357 1.878E-1 5.550 4.441E-3 0.01 5.564 1.926E-2 5.526 1.917E-2 5.545 4.44E-5 0.001 5.547 1.922E-3 5.543 1.921E-3 5.545 -4.44E-7 ■ Mariusz B. Bogacki Zakład Inżynierii Procesowej Wydział Technologii Chemicznej PP Strona 7 2009-02-26 Metody Numeryczne i Programowanie Wykład 5. Strona 8 z 33 Metody numerycznego różniczkowania funkcji (8) Iloraz różnicowy – podejście ogólne Wielomian interpolacyjny Lagrange’a: n f ( x ) = ∑ f ( x k ) ⋅ Lk ( x ) + k =0 ( x − x 0 ) ⋅ ( x − x1 ) ⋅ K ⋅ ( x − x n ) (n +1) (ξ ( x )) , f (n + 1)! (5.11) gdzie ξ jest pewną liczbą z przedziału[a, b] ξ ( x ) ∈ [a , b] , a Lk(x) oznacza k – ty współczynnik wielomianowy w wielomianie Lagrange’a wyznaczony na siatce punktów x 0 , x1 , K , x n . Różniczkując to wyrażenie otrzymamy: f ′( x ) = = ⎞ d ⎛ (x − x ) ⋅ (x − x ) ⋅ K ⋅ (x − x ) ( ) (ξ (x ))⎟⎟ = f ∑ f (x ) ⋅ L′ (x ) + dx ⎜⎜ (n + 1)! n k k k =0 0 1 n +1 ⎝ ⎠ d ⎛ (x − x ) ⋅ (x − x ) ⋅ K ⋅ (x − x ) ⎞ ⎟⎟ + . (5.12) ∑ f (x ) ⋅ L′ (x ) + f ( ) (ξ (x )) ⋅ dx ⎜⎜ (n + 1)! n k k n +1 0 1 ⎝ k =0 + n (x − x0 ) ⋅ (x − x1 ) ⋅ K ⋅ (x − xn ) ⋅ d ( f (n +1) (ξ (x ))). (n + 1)! dx n ⎠ Jeżeli x jest jednym z węzłów interpolacji xj, j = 0, 1, ..., n wtedy n f ′(x j ) = ∑ f ( x k ) ⋅ Lk′ (x j ) + f k =0 ( n +1) n (ξ (x )) ⋅ ∏ (x j k =0 k≠ j j − xk ) . (5.13) Największe znaczenie z różnych metod wielopunktowych mają metody różnicowe trzy i pięciopunktowe. Mariusz B. Bogacki Zakład Inżynierii Procesowej Wydział Technologii Chemicznej PP Strona 8 2009-02-26 Metody Numeryczne i Programowanie Wykład 5. Strona 9 z 33 Metody numerycznego różniczkowania funkcji (9) Metody trzypunktowe Metoda różnicowa wsteczna: f ′( x 0 ) = f ( x 0 − 2h ) − 4 f ( x 0 − h ) + 3 f ( x 0 ) h 2 + f ′′′(ξ 2 ) . 2h 3 (5.21) Metoda różnicowa centralna: f ′( x 0 ) = − f (x 0 − h ) + f (x 0 + h ) h 2 f ′′′(ξ 1 ) . − 2h 6 (5.22) Analogiczne wyrażenie na metodę różnicową progresywną przyjmie postać: f ′( x 0 ) = − 3 f ( x 0 ) + 4 f ( x 0 + h ) − f ( x 0 + 2h ) h 2 f ′′′(ξ 0 ) . + 2h 3 Mariusz B. Bogacki Zakład Inżynierii Procesowej Wydział Technologii Chemicznej PP Strona 9 (5.23) 2009-02-26 Metody Numeryczne i Programowanie Wykład 5. Strona 10 z 33 Metody numerycznego różniczkowania funkcji (10) Rachunek błędów Problem ten przedstawiony zostanie na przykładzie trzypunktowej formuły różnicowej centralnej (równanie 5.22): f ′( x 0 ) = − f (x 0 − h ) + f (x 0 + h ) h 2 f ′′′(ξ 1 ) . − 2h 6 (5.22) Obliczając wartości funkcji f(x0 – h) oraz f(x0 + h) uzyskujemy błąd zaokrąglenia e(x0 – h) oraz e(x0 + h). Prawdziwe wartości funkcji związane są z ich wartościami obliczonymi zależnościami: f (x 0 − h ) = ~ f ( x 0 − h ) + e( x 0 − h ) , (5.34) f (x 0 + h ) = ~ f ( x 0 + h ) + e( x 0 + h ) . (5.35) oraz Stąd otrzymamy następującego oszacowania błędu aproksymacji: f ′( x 0 ) − ~ f (x 0 + h ) − ~ f ( x 0 − h ) e( x 0 + h ) − e( x 0 − h ) h 2 f ′′′(ξ 1 ) . = − 2h 2h 6 (5.36) Błąd ten składa się z dwóch części: błędu zaokrąglenia oraz błędu obcięcia. Jeżeli założymy, że błędy zaokrąglenia e(x0 – h) oraz e(x0 + h) ograniczone są z góry przez tę samą liczbę ε > 0 oraz, że trzecia pochodna funkcji f jest ograniczona za pomocą pewnej liczby M > 0, to f ′( x 0 ) − ~ f (x 0 + h ) − ~ f (x 0 − h ) ε h 2 f ′′′(ξ 1 ) . ≤ + 2h h 6 Mariusz B. Bogacki Zakład Inżynierii Procesowej Wydział Technologii Chemicznej PP Strona 10 (5.37) 2009-02-26 Metody Numeryczne i Programowanie Wykład 5. Strona 11 z 33 Metody numerycznego różniczkowania funkcji (11) Pochodne wyższych rzędów Wzory na wyższe pochodne uzyskuje się: - różniczkując kilkakrotnie wzory wykorzystujące interpolację wielomianową, - korzystając z wielomianu Taylora. Tabela 5.7. Formuły różnicowe centralne numerycznego różniczkowania funkcji f(x). Błąd obcięcia dla wszystkich formuł – O(h2). Równania różnicowe centralne na aproksymację pochodnych funkcji f ′( x i ) = f ′′( x i ) = f ′′′( x i ) = f (4 ) ( xi ) = 1 [ f (x i +1 ) − f (x i −1 )] + O (h 2 ) , 2h 1 [ f (x i +1 ) − 2 f (x i ) + f (x i −1 )] + O (h 2 ) , 2 h 1 [ f (x i + 2 ) − 2 f (x i +1 ) + 2 f (x i −1 ) + f (x i −2 )] + O (h 2 ) , 3 2h 1 [ f (xi + 2 ) − 4 f (xi +1 ) + 6 f (xi ) − 4 f (xi −1 ) + f (xi − 2 )] + O h2 . h4 Mariusz B. Bogacki Zakład Inżynierii Procesowej Wydział Technologii Chemicznej PP ( ) Strona 11 2009-02-26 Metody Numeryczne i Programowanie Wykład 5. Strona 12 z 33 Metody numerycznego różniczkowania funkcji (12) Pochodne wyższych rzędów Przykład 5.5. Wykorzystując dane podane w przykładzie 5.3. aproksymować kolejno pierwszą, drugą, trzecia i czwartą pochodną funkcji f ( x ) = x ⋅ e x . Rozwiązanie Kolejne pochodne funkcji f ( x ) = x ⋅ e x dane są równaniami f (i ) ( x ) = ( x + i ) ⋅ e x , i = 1,2,3,4 .Wyniki obliczeń przedstawiono w tabeli 5.8. Tabela 5.8. Wyniki aproksymowania kolejnych pochodnych funkcji f ( x ) = x ⋅ e x w punkcie x0 = 2.0. Pochodna Wartość dokładna Aproksymacja Błąd bezwzględny f ′(2.0) 22.167168 22.228787 -6.162E-2 f ′′(2.0) 29.556224 29.593186 -3.696E-2 f ′′′(2.0 ) 36.94528 37.074755 -1.295E-1 f ( 4 ) (2.0) 44.334337 44.43295 -9.861E-2 ■ Mariusz B. Bogacki Zakład Inżynierii Procesowej Wydział Technologii Chemicznej PP Strona 12 2009-02-26 Metody Numeryczne i Programowanie Wykład 5. Strona 13 z 33 Metoda ekstrapolacji Richardsona (1) Dana jest pewna metoda N1(h), która z błędem rzędu O(h2) aproksymuje nieznaną wielkość M. Załóżmy dodatkowo, że błąd metody N1(h) aproksymującej M przedstawić można w postaci wyrażenia: M = N 1 (h ) + K 1 h 2 + O (h 4 ) , (5.43) gdzie K1 jest pewną stałą nie zależną od długości kroku h. Podstawmy w równaniu (5.43) zamiast h wielkość h/2. Otrzymamy wtedy: ⎛⎛ h ⎞4 ⎞ h2 ⎛h⎞ + O⎜ ⎜ ⎟ ⎟ . M = N 1 ⎜ ⎟ + K1 ⎜⎝ 2 ⎠ ⎟ 4 ⎝2⎠ ⎝ ⎠ (5.44) Mnożymy równanie (5.44) przez 4 i odejmujemy od niego stronami równanie (5.43) otrzymując: ⎛h⎞ 3M = 4 N 1 ⎜ ⎟ − N 1 (h ) + O (h 4 ) , ⎝2⎠ (5.45) Ostatecznie otrzymać możemy nową metodę N2(h) aproksymującą M z błędem obcięcia rzędu O(h4): ⎛h⎞ N 1 ⎜ ⎟ − N 1 (h ) 2 M = N 2 (h ) = 4 ⎝ ⎠ + O (h 4 ) . 3 (5.46) Powtarzając ten sam zabieg otrzymamy: ⎛h⎞ ⎛h⎞ 4 2 N 2 ⎜ ⎟ − N 2 (h ) 16 ⋅ N 2 ⎜ ⎟ − N 2 (h ) ⎝2⎠ ⎝2⎠ N 3 (h ) = + O (h 6 ) . = 2 15 4 −1 Mariusz B. Bogacki Zakład Inżynierii Procesowej Wydział Technologii Chemicznej PP Strona 13 (5.48) 2009-02-26 Metody Numeryczne i Programowanie Wykład 5. Strona 14 z 33 Metoda ekstrapolacji Richardsona (2) Metodę tę wyrazić można przy pomocy rekurencyjnego wzoru w sposób następujący: ⎛h⎞ 4 j −1 N j −1 ⎜ ⎟ − N j −1 (h ) ⎝2⎠ N j (h ) = , 4 j −1 − 1 j = 1,2, K m . (5.50) Tabela 5.9. Ciąg kolejnych ekstrapolacji Richardsona N 1 (h ) ⎛h⎞ N1 ⎜ ⎟ N 2 (h ) ⎝2⎠ ⎛ h ⎞ ⎛h⎞ N1 ⎜ 2 ⎟ N2⎜ ⎟ N 3 (h ) ⎝2 ⎠ ⎝2⎠ ⎛ h ⎞ ⎛ h ⎞ ⎛h⎞ N1 ⎜ 3 ⎟ N2⎜ 2 ⎟ N3⎜ ⎟ N 4 (h ) ⎝2 ⎠ ⎝2 ⎠ ⎝2⎠ M M M M ⎛ h ⎞ ⎛ h ⎞ ⎛ h ⎞ ⎛ h N 1 ⎜ m − 2 ⎟ N 2 ⎜ m − 3 ⎟ N 3 ⎜ m − 4 ⎟ N 4 ⎜ m −5 ⎝2 ⎠ ⎝2 ⎠ ⎝2 ⎠ ⎝2 ⎛ h ⎞ ⎛ h ⎞ ⎛ h ⎞ ⎛ h N 1 ⎜ m −1 ⎟ N 2 ⎜ m − 2 ⎟ N 3 ⎜ m − 3 ⎟ N 4 ⎜ m − 4 ⎝2 ⎠ ⎝2 ⎠ ⎝2 ⎠ ⎝2 Mariusz B. Bogacki Zakład Inżynierii Procesowej Wydział Technologii Chemicznej PP Strona 14 O ⎞ ⎟ L N m −1 (h ) ⎠ ⎞ ⎛h⎞ ⎟ L N m −1 ⎜ ⎟ N m (h ) ⎠ ⎝2⎠ 2009-02-26 Metody Numeryczne i Programowanie Wykład 5. Strona 15 z 33 Metoda ekstrapolacji Richardsona (3) Przykład 5.6. Dana jest funkcja f ( x ) = x ⋅ e x . Korzystając z trzypunktowej metody różnicowej centralnej należy aproksymować wartość pierwszej pochodnej tej funkcji w punkcie x0 = 2.0. Do poprawienia wyników wykorzystać metodę ekstrapolacji Richardsona. Wartość pochodnej tej funkcji z dokładnością do 6 cyfr po przecinku wynosi f ′( x 0 ) = x ⋅ e x0 + e x0 = 22.167168 . Rozwiązanie Błąd aproksymacji w trzypunktowej metodzie centralnej z zachowaniem kolejnych członów dany jest następującą zależnością: f (x 0 + h ) − f (x 0 − h ) h 2 h4 f ′( x 0 ) = − f ′′′( x 0 ) − f 2h 6 120 Tabela 5.10. Wyniki kolejnych ekstrapolacji (5 ) ( x 0 ) + O (h 6 ). Richardsona zastosowanych do aproksymowania wartości pierwszej pochodnej funkcji f ( x ) = x ⋅ e x w punkcie x0 = 2.0. Wyjściowy krok metody h = 0.2. N 1 (0.2 ) = 22.414160 4 ⋅ N 1 (0.1) − N 1 (0.2) N 1 (0.1) = 22.228786 3 = 22.166995 4 ⋅ N 1 (0.05) − N 1 (0.1) 16 ⋅ N 2 (0.1) − N 2 (0.2 ) N 2 (0.1) = N 3 (0.2 ) = N 1 (0.05) = 22.182564 3 15 = 22.167157 = 22.167168 N 2 (0.2 ) = Jak można zauważyć trzecia ekstrapolacja daje nam wynik poprawny z dokładnością do sześciu cyfr po przecinku. ■ Mariusz B. Bogacki Zakład Inżynierii Procesowej Wydział Technologii Chemicznej PP Strona 15 2009-02-26 Metody Numeryczne i Programowanie Wykład 5. Strona 16 z 33 Metody numerycznego całkowania funkcji (1) Ogólnie metodę numerycznego całkowania przedstawić można w postaci: b ∫ n f ( x )dx ≈ ∑ c i f ( x i ) , a (5.52) i =0 gdzie ci są współczynnikami (wagami), których wartości zależą od przyjętej metody, natomiast x i ∈ [a, b], dla i = 0,1, K , n . Tak zdefiniowane metody określa się mianem kwadratur. W literaturze opisana duża ilość różnych metod. Dużą grupę stanowią metody wykorzystujące interpolację wielomianami wyznaczanymi na siatkach równoodległych węzłów. Metody te w literaturze opisane są jako metody Newtona – Cotesa. Mariusz B. Bogacki Zakład Inżynierii Procesowej Wydział Technologii Chemicznej PP Strona 16 2009-02-26 Metody Numeryczne i Programowanie Wykład 5. Strona 17 z 33 Metody numerycznego całkowania funkcji (2) Wzory Newtona _ Cotesa Załóżmy, że w przedziale domkniętym [a, b] danych jest n + 1 punktów siatli xi, i = 0, 1, 2, ..., n takich, że a = x 0 < x1 < x 2 < K < x n − < x n = b . (5.53) Dany jest wielomian Lagrange’a n n i =0 i =0 Pn ( x ) = ∑ f ( x i )Li ( x ) + ∏ ( x − x i ) ⋅ f (ξ ( x )) , (n + 1)! ( n +1) (5.54) który interpoluje funkcję f(x) w zadanych punktach xi, i = 0, 1, 2, ..., n. Wielomian podstawiamy zamiast funkcji podcałkowej, otrzymując: b b n a a i =0 ∫ f (x )dx = ∫ ∑ f (n +1) (ξ ( x )) f ( xi )Li ( x ) + ∫ ∏ ( x − xi ) ⋅ dx = (n + 1)! a i =0 b n b n 1 (x − xi ) ⋅ f (n +1) (ξ (x ))dx, = ∑ ai f ( xi ) + ∏ ∫ (n + 1)! a i = 0 i =0 n (5.55) gdzie ξ(x) jest pewną liczbą z przedziału [a, b] zależną od x oraz b ai = ∫ Li ( x )dx , dla każdego i = 0,1,2,K n . (5.56) a Mariusz B. Bogacki Zakład Inżynierii Procesowej Wydział Technologii Chemicznej PP Strona 17 2009-02-26 Metody Numeryczne i Programowanie Wykład 5. Strona 18 z 33 Metody numerycznego całkowania funkcji (3) Metoda Trapezów Metodę całkowania, w której zakładamy, że funkcję podcałkową przedstawiamy za pomocą wielomianu Lagrange’a stopnia pierwszego nazywamy metodą trapezów. f(x) f(b) P1(x) f(a) x1 = b x0 = a Rysunek 5.2. Interpretacja geometryczna metody trapezów. Mariusz B. Bogacki Zakład Inżynierii Procesowej Wydział Technologii Chemicznej PP Strona 18 2009-02-26 Metody Numeryczne i Programowanie Wykład 5. Strona 19 z 33 Metody numerycznego całkowania funkcji (4) Metoda Trapezów Korzystamy z wielomianu Lagrange’a stopnia pierwszego: P1 ( x ) = x − x0 x − x1 1 f (x 0 ) + f ( x1 ) + ( x − x 0 )( x − x1 ) f ′′(ξ ( x )) , 2 x 0 − x1 x1 − x 0 (5.57) gdzie x0 = a, x1 = b natomiast ξ(x) jest pewną liczbą z przedziału [a, b]. Poszukiwaną całkę przedstawić można w postaci: b b a a ∫ f (x )dx = ∫ P (x )dx = 1 b ⎡ x − x1 ⎤ x − x0 1 = ∫⎢ f ( x1 ) + (x − x0 )( x − x1 ) f ′′(ξ ( x ))⎥ dx = f (x0 ) + 2 x1 − x0 x − x1 ⎦ a ⎣ 0 (5.58) b b ⎡ x − x1 ⎤ x − x0 1 = ∫⎢ f (x0 ) + f ( x1 )⎥ dx + ∫ [( x − x0 )(x − x1 ) f ′′(ξ (x ))]dx. x − x1 x1 − x0 2a ⎦ a ⎣ 0 Mariusz B. Bogacki Zakład Inżynierii Procesowej Wydział Technologii Chemicznej PP Strona 19 2009-02-26 Metody Numeryczne i Programowanie Wykład 5. Strona 20 z 33 Metody numerycznego całkowania funkcji (5) Metoda Trapezów – oszacowanie członu błędu Ponieważ (x – x0)(x – x1) nie zmienia znaku w przedziale [a, b], to korzystając z twierdzenia o wartości średniej dla całek zastosowanego do członu z błędem obcięcia otrzymamy: b b a a ∫ [(x − x0 )(x − x1 ) f ′′(ξ (x ))]dx = f ′′(ξ )∫ (x − x0 )(x − x1 )dx = x1 ⎤ ⎡ x 3 x1 + x0 2 h3 ′ ′ x + x0 x1 x ⎥ = − f ′′(ξ ), = f (ξ )⎢ − 3 2 6 ⎦ x0 ⎣ (5.59) gdzie h = b – a. Mariusz B. Bogacki Zakład Inżynierii Procesowej Wydział Technologii Chemicznej PP Strona 20 2009-02-26 Metody Numeryczne i Programowanie Wykład 5. Strona 21 z 33 Metody numerycznego całkowania funkcji (6) Metoda Trapezów Wykorzystując oszacowanie błędu otrzymamy: b ∫ a x1 ⎡ ( x − x1 )2 (x − x0 )2 f (x )⎤ − h3 f ′′(ξ ) = f ( x )dx = ⎢ f ( x0 ) + 1 ⎥ 2( x1 − x0 ) ⎣ 2( x0 − x1 ) ⎦ x0 12 (5.60) 3 = x1 − x0 [ f (x0 ) + f (x1 )] − h f ′′(ξ ). 2 12 Ostatecznie metodę trapezów zapisać można w postaci równania: b ∫ a h h3 f ( x )dx = [ f ( x 0 ) + f ( x1 )] − f ′′(ξ ) . 2 12 (5.61) UWAGA: Metoda ta daje dokładne rozwiązania w przypadku, gdy druga pochodna funkcji podcałkowej jest tożsamościowo równa zero. Oznacza to, że funkcje będące wielomianami stopnia pierwszego lub niżej są całkowane z zastosowaniem metody trapezów dokładnie. O takiej metodzie całkowania mówimy, że jej stopień dokładności wynosi jeden. Mariusz B. Bogacki Zakład Inżynierii Procesowej Wydział Technologii Chemicznej PP Strona 21 2009-02-26 Metody Numeryczne i Programowanie Wykład 5. Strona 22 z 33 Metody numerycznego całkowania funkcji (7) Metoda Trapezów Przykład 5.7. Korzystając z metody trapezów obliczyć pole powierzchni pod krzywą daną równaniem f ( x ) = exp(− x 2 ) ograniczoną punktami a = x0 = 0 oraz b = x1 = 2. Oszacowanie wartości 2 całki z dokładnością do sześciu cyfr po przecinku wynosi ∫ exp(− x 2 )dx =0.882081 . 0 Rozwiązanie b ∫ a 2 ( ) f ( x )dx = ∫ exp − x 2 dx ≈ 0 = h [ f (x0 ) + f (x1 )] = 2 2−0 exp − 02 + exp − 22 = 1 + exp(− 4 ) = 1.018316. 2 [ ( ) )] ( Błąd obcięcia aproksymacji wynosi: (2 − 0) ⋅ 1 = 8 = 2 = 0.667 . h3 h3 f ′′(ξ ) ≤ max f ′′(ξ ) = 12 12 0≤ξ ≤2 12 12 3 3 Oszacowanie błędu względnego natomiast przedstawia się następująco: ε= ~ x−x x = 1.018316 − 0.882081 0.882081 = 0.136235 = 0.1514 = 1.514 × 10 −1 . 0.882081 Jak z powyższego oszacowania błędu względnego wynika, aproksymowana wartość całki jest obliczona z dokładnością do jednej cyfry znaczącej. Mariusz B. Bogacki Zakład Inżynierii Procesowej Wydział Technologii Chemicznej PP Strona 22 2009-02-26 Metody Numeryczne i Programowanie Wykład 5. Strona 23 z 33 Metody numerycznego całkowania funkcji (8) Metoda Trapezów Przykład 5.7. cd. 1.2 f(x) 1 0.8 0.6 0.4 P1(x) 0.2 0 0 Rysunek 5.3. Funkcja 0.5 1 1.5 2 2.5 f ( x ) = exp(− x 2 ) oraz liniowa interpolacja wykorzystywana do całkowania w metodzie trapezów. ■ Mariusz B. Bogacki Zakład Inżynierii Procesowej Wydział Technologii Chemicznej PP Strona 23 2009-02-26 Metody Numeryczne i Programowanie Wykład 5. Strona 24 z 33 Metody numerycznego całkowania funkcji (9) Metoda Simpsona Metoda Simpsona całkowania funkcji f w przedziale domkniętym [a, b] wykorzystuje wielomiany interpolacyjne Lagrange’a stopnia drugiego wyznaczone na węzłach x0 = a, x2 = b oraz x1 = a + h, gdzie h = b−a . Interpretację geometryczną tej metody przedstawiono na 2 rysunku 5.4. f(x) f(b) P2(x) f(a) f(x1) x0 = a x1 = a + h x2 = b Rysunek 5.4. Interpretacja geometryczna metody całkowania funkcji f(x) metodą Simpsona. b ∫ a h h5 f ( x )dx = [ f ( x 0 ) + 4 f ( x1 ) + f ( x 2 )] − f 3 90 Mariusz B. Bogacki Zakład Inżynierii Procesowej Wydział Technologii Chemicznej PP Strona 24 (4 ) (ξ ) . (5.72) 2009-02-26 Metody Numeryczne i Programowanie Wykład 5. Strona 25 z 33 Metody numerycznego całkowania funkcji (10) Metoda Simpsona Przykład 5.8. Korzystając z metody Simpsona obliczyć pole powierzchni pod krzywą daną równaniem f ( x ) = exp(− x 2 ) ograniczoną punktami a = x0 = 0 oraz b = x1 = 2. Oszacowanie wartości 2 całki z dokładnością do sześciu cyfr po przecinku wynosi ∫ exp(− x 2 )dx =0.882081 . 0 Rozwiązanie b ∫ a 2 ( ) f ( x )dx = ∫ exp − x 2 dx ≈ 0 [ ( )] h [ f (x0 ) + 4 f (x1 ) + f (x2 )] = 2 − 1 exp − 0 2 + 4 exp − 12 + exp − 2 2 = 3 3 ) ( ) ( 1 (1 + 4 exp(− 1) + exp(− 4)) = 0.829944. 3 Błąd obcięcia aproksymacji wynosi: = (2 − 1) ⋅ 1 = 1 = 1.11 × 10 − 2 . h5 h5 ′ ′ f (ξ ) ≤ max f ′′(ξ ) = ξ ≤ ≤ 0 2 90 90 90 90 5 Oszacowanie błędu względnego natomiast przedstawia się następująco: ε= ~ x−x x = 0.829944 − 0.882081 0.882081 = 0.052137 = 5.91 × 10 − 2 . 0.882081 Jak z powyższego oszacowania błędu względnego wynika, aproksymowana wartość całki jest obliczona z dokładnością do dwóch cyfr znaczących. Mariusz B. Bogacki Zakład Inżynierii Procesowej Wydział Technologii Chemicznej PP Strona 25 2009-02-26 Metody Numeryczne i Programowanie Wykład 5. Strona 26 z 33 Metody numerycznego całkowania funkcji (11) Metoda Simpsona Przykład 5.8. cd. 1.2 f(x) 1 0.8 0.6 P2(x) 0.4 0.2 0 0 0.5 1 1.5 2 2.5 Rysunek 5.5. Funkcja f ( x ) = exp(− x 2 ) oraz jej kwadratowa interpolanta wykorzystywana do całkowania w metodzie Simpsona. ■ Mariusz B. Bogacki Zakład Inżynierii Procesowej Wydział Technologii Chemicznej PP Strona 26 2009-02-26 Metody Numeryczne i Programowanie Wykład 5. Strona 27 z 33 Metody numerycznego całkowania funkcji (12) Zamknięte i otwarte metody Newtona - Cotesa Zamknięte metody Newtona – Cotesa - n + 1 węzłów xi = x0 + ih, i = 0, 1, 2, ..., n, gdzie h = (b-a)/n - dobrane jest w taki sposób, aby x0 = a oraz xn = b. b ∫ n f ( x )dx ≈ ∑ a i f ( x i ) , (5.73) i =0 a gdzie (x − x ) ∫ ∏ (x − x )dx . xn xn x0 x0 j = 0 j ≠i a i = ∫ Li ( x )dx = n j i (5.74) j Otwarte metody Newtona – Cotesa. - n + 2 węzły xi = x0 + ih, i = 0, 1, 2, ..., n, gdzie h = (b-a)/(n+2) - x0 = a + h. oraz xn = b – h. - początek i koniec przedziału całkowania nie stanowią węzłów interpolacji! b ∫ f ( x )dx = a xn +1 ∫ n f ( x )dx ≈ ∑ a i f ( x i ) , (5.77) i =0 x −1 gdzie formalni wprowadzono oznaczenia na granice całkowania jako: x-1 = a oraz xn+1 = b, oraz: (x − x ) ∫ ∏ (x − x )dx . xn xn x0 x0 j = 0 j ≠i a i = ∫ Li ( x )dx = n j i Mariusz B. Bogacki Zakład Inżynierii Procesowej Wydział Technologii Chemicznej PP (5.78) j Strona 27 2009-02-26 Metody Numeryczne i Programowanie Wykład 5. Strona 28 z 33 Metody numerycznego całkowania funkcji (13) Zamknięte i otwarte metody Newtona - Cotesa Tabela 5.11. Różne wyrażenia na obliczanie przybliżonej wartości całki z zastosowaniem wzorów na zamkniętą metodę Newtona – Cotesa. n+1 – liczba węzłów. h = b−a n – krok całkowania. ξ jest pewną liczbą z przedziału (a, b). n Formuła Metoda b 1 ∫ Trapezów f ( x )dx = a b 2 Simpsona f ( x )dx = ∫ a 3 h [ f (x 0 ) + f (x1 )] − h f ′′(ξ ) 2 12 5 h [ f (x 0 ) + 4 f (x1 ) + f (x 2 )] − h f 3 90 (5.73) (4 ) (ξ ) (5.74) b 3h ∫ f (x )dx = 8 [ f (x ) + 3 f (x ) + 3 f (x ) + f (x )] − 0 3 Simpsona 3/8 3h 5 f − 80 b 4 - 1 2 3 a (4 ) (ξ ) 2h ⎡7 f ( x 0 ) + 32 f ( x1 ) + 12 f ( x 2 ) + ⎤ ⎥− 3 4 ⎦ 7 8h f (6 ) (ξ ) − 945 ∫ f (x )dx = 45 ⎢⎣+ 32 f (x ) + 7 f (x ) a (5.75) (5.76) UWAGI: 1. Gdy n jest liczbą parzystą otrzymana kwadratura ma rząd zbieżności O(hn+3) oraz jest dokładna dla wielomianów stopnia n + 1. 2. Gdy n jest nieparzyste otrzymana kwadratura ma rząd zbieżności O(hn+2) oraz jest dokładna dla wielomianów stopnia n. Mariusz B. Bogacki Zakład Inżynierii Procesowej Wydział Technologii Chemicznej PP Strona 28 2009-02-26 Metody Numeryczne i Programowanie Wykład 5. Strona 29 z 33 Metody numerycznego całkowania funkcji (14) Zamknięte i otwarte metody Newtona - Cotesa Tabela 5.12. Różne wyrażenia na obliczanie przybliżonej wartości całki z zastosowaniem wzorów na otwartą metodę Newtona – Cotesa. n+1 – liczba węzłów. h = b−a – n+2 krok całkowania. ξ jest pewną liczbą z przedziału (a, b). Formuła n xn +1 ∫ 0 f ( x )dx = 2hf ( x 0 ) + x −1 xn +1 3h 3h 3 ∫ f (x )dx = 2 [ f (x 0 ) + f (x1 )] + 4 f x −1 1 xn +1 ∫ 2 f ( x )dx = x −1 xn +1 3 h3 f ′′(ξ ) 3 ∫ x −1 f ( x )dx = (5.79) (2 ) (ξ ) 5 4h [2 f (x 0 ) − f (x1 ) + 2 f (x 2 )] + 14h f 3 45 (5.80) (4 ) (ξ ) 5 5h [11 f (x 0 ) + f (x1 ) + f (x 2 ) + 11 f (x 3 )] + 95h f 24 144 (4 ) (5.81) (ξ ) (5.82) UWAGA: Błąd metod zamkniętych zależy od tego czy n jest parzyste czy też nieparzyste. Mariusz B. Bogacki Zakład Inżynierii Procesowej Wydział Technologii Chemicznej PP Strona 29 2009-02-26 Metody Numeryczne i Programowanie Wykład 5. Strona 30 z 33 Metody numerycznego całkowania funkcji (15) Metody kompozycyjne numerycznego całkowania Zadany przedział całkowania [a, b] należy podzielić na n podprzedziałów i do każdej z sąsiadujących par węzłów zastosować jedną z metod Newtona - Cotesa. Kompozycyjna metoda trapezów dla n podprzedziałów: b ∫ bx j n ⎧h ⎫ h3 ( ) [ ( ) ( ) ] f x dx f x f x f ′′(ξ j )⎬ , = − − ⎨ ∑ j j −1 ∫ 12 j =1 x j −1 j =1 ⎩ 2 ⎭ n f ( x )dx = ∑ a (5.83) gdzie ξ j ∈ (x j −1 , x j ) . Inna postać: b ∫ f ( x )dx = a n −1 ⎤ (b − a )h 2 h⎡ ( ) ( ) ( ) f a + f x + f b f ′′(µ ) , 2 ∑ ⎢ ⎥− j 2⎣ 12 j =1 ⎦ (5.84) gdzie µ jest pewną liczbą z przedziału (a, b). Kompozycyjna metoda Simpsona dla n podprzedziałów: b ∫ a f ( x )dx = m m −1 ⎤ (b − a )h 4 (4 ) h⎡ ( ) ( ) ( ) ( ) + + + f a 2 f x 4 f x f b f (µ ) , (5.85) ⎥− ⎢ ∑ ∑ 2 j −1 2j 3⎣ 180 j =1 j =1 ⎦ gdzie µ jest pewną liczbą z przedziału (a, b). Mariusz B. Bogacki Zakład Inżynierii Procesowej Wydział Technologii Chemicznej PP Strona 30 2009-02-26 Metody Numeryczne i Programowanie Wykład 5. Strona 31 z 33 Metody numerycznego całkowania funkcji (16) Metody kompozycyjne numerycznego całkowania Przykład 5.10. Stosując metodę kompozycyjną Simpsona oraz trapezów oszacować wartość całki π I = ∫ sin( x )dx z błędem nie większym niż 0.00002. Wartość dokładna I = 2. 0 Rozwiązanie Metoda Simpsona: π m −1 m ⎤ πh 4 h⎡ sin(µ ) , I = ∫ sin( x )dx = ⎢sin(0) + 2∑ sin (x 2 j ) + 4∑ sin (x 2 j −1 ) + sin (π )⎥ − 3⎣ j =0 j =1 ⎦ 180 0 gdzie µ jest liczbą z przedziału (0, π), h = π , n = 2m. n Oczekujemy, że błąd aproksymacji ma być nie większy niż 0.00002, stąd oszacowanie błędu: πh 4 180 sin(µ ) ≤ πh 4 180 = π5 2880m 4 ≤ 0.00002 . Stąd wyliczyć możemy, że m ≥ 9. Jeżeli m = 10, to n = 20 oraz h = π π I = ∫ sin( x )dx ≈ 0 20 i poszukiwaną wartość całki obliczamy: 9 10 ⎛ (2 j − 1)π ⎛ jπ ⎞ 2 sin 4 sin⎜ + ⎟ ∑ ⎢ ∑ ⎜ 60 ⎣ j =0 ⎝ 10 ⎠ 20 ⎝ j =1 π ⎡ Mariusz B. Bogacki Zakład Inżynierii Procesowej Wydział Technologii Chemicznej PP Strona 31 ⎞⎤ ⎟⎥ = 2.00000679 . ⎠⎦ 2009-02-26 Metody Numeryczne i Programowanie Wykład 5. Strona 32 z 33 Metody numerycznego całkowania funkcji (17) Metody kompozycyjne numerycznego całkowania Przykład 5.10. cd. Metoda trapezów: π I = ∫ sin( x )dx = 0 n −1 ⎤ πh 2 h⎡ ( ) ( ) ( ) sin 0 + 2 sin + sin π sin(µ ) , x ∑ ⎢ ⎥− j 2⎣ j =1 ⎦ 12 gdzie µ jest liczbą z przedziału (0, π), h = π , n – liczba węzłów. n Oczekujemy, że błąd aproksymacji ma być nie większy niż 0.00002, stąd oszacowanie błędu: πh 2 12 sin (µ ) ≤ πh 2 12 = π3 12n 2 ≤ 0.0002 . Stąd n > 359 i jako oszacowanie wartości całki dla n = 360 otrzymamy: π I = ∫ sin( x )dx ≈ 0 π ⎡ 359 ⎛ π ⎞⎤ 2 j ⎟⎥ = 1.99998731 . ⎢ ∑ sin⎜ 720 ⎣ j =1 ⎝ 360 ⎠⎦ ■ Mariusz B. Bogacki Zakład Inżynierii Procesowej Wydział Technologii Chemicznej PP Strona 32 2009-02-26 Metody Numeryczne i Programowanie Wykład 5. Strona 33 z 33 Metody numerycznego całkowania funkcji (18) Oszacowanie błędów że wartość funkcji f(xi) aproksymowana jest w zmiennopozycyjnym rachunku maszynowym za pomocą ~ f ( x ) oraz, że: i f (xi ) = ~ f ( x i ) + ei , i = 0,1,2, K n , (5.86) gdzie ei są błędami zaokrąglenia związanymi z użyciem ~ f ( x i ) do aproksymowania f(xi). Zakumulowany błąd zaokrąglenia (ERR) dla kompozycyjnej metody Simpsona: ERR = m m −1 ⎤ h⎡ ⎢e0 + 2∑ e2 j + 4∑ e2 j −1 + e2 m ⎥ ≤ 3⎣ j =1 j =1 ⎦ ≤ m −1 m ⎤ h⎡ e 2 e 4 e2 j −1 + e2 m ⎥ ≤ + + ⎢ 0 ∑ ∑ 2j 3⎣ j =1 j =1 ⎦ ≤ h [ε + 2(m − 1)ε + 4mε + ε ] = 2mhε = (b − a )ε , 3 (5.87) gdzie ε jest wspólnym oszacowaniem wszystkich występujących błędów zaokrągleń. Mariusz B. Bogacki Zakład Inżynierii Procesowej Wydział Technologii Chemicznej PP Strona 33 2009-02-26