WDMNM 5 - Calkowanie i rozniczkowanie
Transkrypt
WDMNM 5 - Calkowanie i rozniczkowanie
5. CAŁKOWANIE I RÓŻNICZKOWANIE FUNKCJI 5.1. Przykład wprowadzający Dane są funkcje f ( x ) = 1 + cos( x ) oraz F ( x ) = x + sin( x ) dla x ∈ [0, 10] związane zależnościami: x F ( x ) = ∫ f (ξ )dξ oraz f ( x ) = 0 dF ( x ) dx oraz ciąg wartości argumentu x : xn = n ⋅ h dla n = 0, ..., N gdzie h = 10 / N , a N jest zadaną liczbą naturalną. Zadanie numerycznego całkowania Sformułowanie: wyznaczyć przybliżone wartości F ( xn ) na podstawie f ( xn ), n = 0, ..., N . Intuicyjne rozwiązanie: F ( xn ) ≅ h ⋅ n −1 ∑ f ( xν ) dla n = 1, ..., N . ν =0 R. Z. Morawski: "Wstęp do metod numerycznych – Całkowanie i różniczkowanie" 5-1 calkowanie metoda prostokatów dla N=10 12 f(x) F(x) estymata F(x) 10 f(x) 8 6 4 2 0 0 2 4 x R. Z. Morawski: "Wstęp do metod numerycznych – Całkowanie i różniczkowanie" 6 8 10 5-2 calkowanie metoda prostokatów dla N =100 10 f(x) F(x) estymata F(x) 9 8 7 f(x) 6 5 4 3 2 1 0 0 2 4 x R. Z. Morawski: "Wstęp do metod numerycznych – Całkowanie i różniczkowanie" 6 8 10 5-3 calkowanie metoda prostokatów dla N =1000 10 f(x) F(x) estymata F(x) 9 8 7 f(x) 6 5 4 3 2 1 0 0 2 4 x R. Z. Morawski: "Wstęp do metod numerycznych – Całkowanie i różniczkowanie" 6 8 10 5-4 calkowanie metoda prostokatów dla N =100 zaburzenie danych równomierne w [- 0.1,0.1] 10 f(x) F(x) estymata F(x) 9 8 7 f(x) 6 5 4 3 2 1 0 0 2 4 x R. Z. Morawski: "Wstęp do metod numerycznych – Całkowanie i różniczkowanie" 6 8 10 5-5 Wpływ losowych zaburzeń danych na wynik można przeanalizować, modelując te zaburzenia za pomocą identycznych, niezależnych zmiennych losowych η0 , η1 , ... o zerowej wartości oczekiwanej i skończonej wariancji σ η2 . Wówczas: n −1 n −1 n −1 ν =0 ν =0 ν =0 ~ F ( xn ) = h ⋅ ∑ [ f ( xν ) + ην ] = h ⋅ ∑ f ( xν ) + h ⋅ ∑ην co oznacza, że wartość oczekiwana składowej błędu całkowania, spowodowanej losowym zaburzeniem danych: n −1 n −1 ν =0 ν =0 ~ F ( xn ) − h ⋅ ∑ f ( xν ) = h ⋅ ∑ην wynosi: n −1 n −1 ⎤ ⎡~ ⎡ n −1 ⎤ E ⎢ F ( xn ) − h ⋅ ∑ f ( xν )⎥ = E ⎢h ⋅ ∑ην ⎥ = h ⋅ ∑ E[ην ] = 0 ⎦ ⎣ ⎣ ν =0 ⎦ ν =0 ν =0 a jej wariancja: 2 n −1 n −1 ⎡⎛ ~ ⎡⎛ n −1 ⎞2 ⎤ ⎞ ⎤ 2 E ⎢⎜⎜ F ( xn ) − h ⋅ ∑ f ( xν )⎟⎟ ⎥ = E ⎢⎜⎜ h ⋅ ∑ην ⎟⎟ ⎥ = h ⋅ ∑ E ην2 = n ⋅ h 2 ⋅ ση2 → 0 ⎠ ⎥⎦ ν =0 ν =0 ⎣⎢⎝ ⎣⎢⎝ ν = 0 ⎠ ⎥⎦ gdy h → 0 . [ ] R. Z. Morawski: "Wstęp do metod numerycznych – Całkowanie i różniczkowanie" 5-6 Zadanie numerycznego różniczkowania Sformułowanie: wyznaczyć przybliżone wartości f ( xn ) na podstawie F ( xn ), n = 0, ..., N ; Intuicyjne rozwiązanie: f ( xn ) ≅ F ( xn ) − F ( xn −1 ) dla n = 1, ..., N . h R. Z. Morawski: "Wstęp do metod numerycznych – Całkowanie i różniczkowanie" 5-7 rózniczkowanie metoda Eulera dla N =10 10 9 f(x) F(x) estymata f(x) 8 7 f(x) 6 5 4 rózniczkowanie metoda Eulera dla N =10 zaburzenie danych równomierne w [- 0.1,0.1] 10 3 2 8 1 6 0 2 4 x 6 8 f(x) 0 10 4 2 0 -2 0 R. Z. Morawski: "Wstęp do metod numerycznych – Całkowanie i różniczkowanie" 2 4 x 6 8 10 5-8 rózniczkowanie metoda Eulera dla N =100 10 f(x) F(x) estymata f(x) 9 8 7 f(x) 6 5 rózniczkowanie metoda Eulera dla N =100 zaburzenie danych równomierne w [- 0.1,0.1] 4 10 3 2 1 0 0 2 4 x 6 8 5 10 0 -5 0 R. Z. Morawski: "Wstęp do metod numerycznych – Całkowanie i różniczkowanie" 2 4 x 6 8 10 5-9 rózniczkowanie metoda Eulera dla N =1000 10 9 f(x) F(x) estymata f(x) 8 7 f(x) 6 5 4 rózniczkowanie metoda Eulera dla N =1000 zaburzenie danych równomierne w [- 0.1,0.1] 60 3 2 40 1 0 2 4 x 6 8 20 f(x) 0 10 0 -20 -40 -60 0 R. Z. Morawski: "Wstęp do metod numerycznych – Całkowanie i różniczkowanie" 2 4 x 6 8 10 5-10 Wpływ losowych zaburzeń danych na wynik można przeanalizować, modelując te zaburzenia za pomocą identycznych, niezależnych zmiennych losowych η0 , η1 , ... o zerowej wartości oczekiwanej i skończonej wariancji σ η2 . Wówczas: [F ( xn ) + ηn ] − [F ( xn −1 ) + ηn −1 ] = F ( xn ) − F ( xn −1 ) + ηn − ηn −1 ~ f ( xn ) = h h h co oznacza, że wartość oczekiwana składowej błędu różniczkowania, spowodowanej losowym zaburzeniem danych: F ( xn ) − F ( xn −1 ) ηn − ηn −1 ~ f ( xn ) − = h h wynosi: F ( xn ) − F ( xn −1 )⎤ ⎡ηn − ηn −1 ⎤ ~ E ⎡⎢ f ( xn ) − = E =0 ⎥ ⎢ ⎥ h h ⎣ ⎦ ⎣ ⎦ a jej wariancja: 2 2 ⎤ 2ση2 ⎡ ⎡⎛ ~ ⎤ − η η F ( xn ) − F ( xn −1 ) ⎞ ⎛ n n −1 ⎞ E ⎢⎜ f ( xn ) − ⎟ ⎥= 2 →∞ ⎟ ⎥ = E ⎢⎜ h h ⎠ ⎦ ⎠ ⎥⎦ h ⎢⎣⎝ ⎣⎝ gdy h → 0 . R. Z. Morawski: "Wstęp do metod numerycznych – Całkowanie i różniczkowanie" 5-11 5.2. Całkowanie funkcji jednej zmiennej – metody klasyczne Ogólna charakterystyka metod numerycznego całkowania Podstawowa metoda numerycznego całkowania funkcji jednej zmiennej f (x ) w "dużym" przedziale [ A, B ] , tzn. wyznaczania całki oznaczonej B ∫ f ( x ) dx polega na: A ♦ dokładnym przedstawieniu tej całki w postaci sumy całek w "małych" podprzedziałach: B X1 X2 B A A X1 XK ∫ f ( x ) dx = ∫ f ( x ) dx + ∫ f ( x ) dx + ... + ∫ f ( x ) dx ♦ przybliżonym wyznaczeniu wartości każdej z całek składowych. Podstawową metodą numerycznego wyznaczania całki w jednym z "małych" podprzedziałów: b I ( f ) = ∫ f ( x ) dx a jest całkowanie funkcji interpolującej funkcję f (x ) , przy czym węzły interpolacji mogą znajdować się także na zewnątrz przedziału [a, b]. R. Z. Morawski: "Wstęp do metod numerycznych – Całkowanie i różniczkowanie" 5-12 Wynikająca stąd formuła całkowania numerycznego: N IˆN ( f ) = ∑ An f ( xn ) n =0 nazywa się kwadraturą (liniową). Węzły kwadratury xn : a ≡ x0 < x1 < ... < x N −1 < x N ≡ b oraz jej współczynniki An są wybierane tak, aby błąd przybliżenia całki I ( f ) : RN ( f ) ≡ IˆN ( f ) − I ( f ) był możliwie mały. Kwadratura jest zbieżna, gdy: RN ( f ) ⎯⎯ ⎯→ 0 N →∞ jeśli tylko ciąg podziałów przedziału [a, b] na podprzedziały [xn , xn +1 ] jest normalny, tzn.: sup{xn +1 − xn n = 0, ..., N − 1} ⎯⎯ ⎯→ 0 N →∞ Kwadratura IˆN ( f ) jest rzędu p , jeżeli jest dokładna dla wszystkich wielomianów stopnia niższego niż p , ale nie dla wszystkich wielomianów stopnia p . R. Z. Morawski: "Wstęp do metod numerycznych – Całkowanie i różniczkowanie" 5-13 Kwadratury Newtona-Cotesa Kwadratura Newtona-Cotesa ma postać: b N a n =0 IˆN ( f ) = ∫ LN ( x ) dx = (b − a ) ∑ Bn , N f ( xn ) gdzie LN ( x ) jest wielomianem interpolacyjnym Lagrange'a: N x − xν ∏ x −x ν ν = 0,ν ≠ n n LN ( x ) = ∑ f ( x n ) n =0 N opartym na równoodległych węzłach: xn = a + nh dla n = 0, ..., N ( h = (b − a ) / N ) natomiast Bn , N są współczynnikami wynikającymi ze scałkowania tego wielomianu w przedziale [a, b]. R. Z. Morawski: "Wstęp do metod numerycznych – Całkowanie i różniczkowanie" 5-14 Współczynnikami Bn , N wyznacza się w sposób następujący: ξ ≡ (x − a ) h N N x − xν h ⋅ ξ − h ⋅ν dx x a h ξ = − = ⋅ = h ⋅ dξ ∏ ∫ ν =∏ ∫ h ⋅ n − h ⋅ν 0, ν ≠ n xn − xν a 0 ν = 0, ν ≠ n dx = h ⋅ dξ b N N N N ξ −ν ξ −ν b−a dξ = = h∫ ∏ ∏ n − ν dξ ∫ ν n N − 0 ν = 0, ν ≠ n 0 ν = 0, ν ≠ n N A zatem: Bn , N 1 = N N ln , N ξ −ν dla n = 0, ..., N ; ξ ≡ d ∫ ν =∏ mN 0, ν ≠ n n − ν 0 N N ∑ Bn, N = 1 n =0 Błąd przybliżenia całki RN ( f ) ≡ IˆN ( f ) − I ( f ) ma postać: RN ( f ) = C N ⋅ f ( p N ) (ξ ) ⋅ h p N +1 , gdzie ξ ∈ [a, b] KWADRATURA N ln,N mN pN trapezów Simpsona trzech ósmych Milne'a Bode'a Weddle'a 1 2 3 4 5 6 1, 1 1, 4, 1 1, 3, 3, 1 7, 32, 12, 32, 7 19, 75, 50, 50, 75, 19 41, 216, 27, 272, 27, 216, 41 2 6 8 90 288 840 2 1/12 4 1/90 4 3/80 6 8/945 6 275/12096 8 9/1400 R. Z. Morawski: "Wstęp do metod numerycznych – Całkowanie i różniczkowanie" CN 5-15 Przykład: Kwadratura trapezów ( N = 1): b ∫ f ( x )dx = a b−a [ f ( a ) + f (b)] 2 metoda trapezow 10 9 8 7 6 f (x ) 5 4 3 2 1 0 0 2 4 x R. Z. Morawski: "Wstęp do metod numerycznych – Całkowanie i różniczkowanie" 6 8 10 5-16 Zastosowanie kwadratury trapezów do "dużego przedziału" daje: B X1 X2 B A A X1 XK I ≡ ∫ f ( x ) dx = ≅ ∫ f ( x ) dx + ∫ f ( x ) dx + ... + ∫ f ( x ) dx X1 − A [ f ( A) + f ( X 1 )] + X 2 − X 1 [ f ( X 1 ) + f ( X 2 )] + ... + B − X K [ f ( X K ) + f ( B )] ≡ Iˆ 2 2 2 Jeżeli X 1 − A = X 2 − X 1 = ... B − X K ≡ H , to: B ∫ A K H H f ( x ) dx ≅ f ( A) + H ∑ f ( X k ) + f ( B ) 2 2 k =1 Błąd obliczonej w ten sposób całki jest sumą błędów estymat całek składowych: K −1 ⎡ ⎤ 1 Iˆ − I = ⎢ f ′′(α ) + ∑ f ′′(ξk ) + f ′′( β )⎥ H 3 12 ⎣ ⎦ k =1 gdzie α ∈ [ A, X 1 ], ξ k ∈ [ X k , X k +1 ] i β ∈ [ X K , B ] R. Z. Morawski: "Wstęp do metod numerycznych – Całkowanie i różniczkowanie" 5-17 Przykład: Całkę: 100 I= ∫ [1 + cos( x )]dx = 99.4936 0 wyznaczono na podstawie wartości funkcji podcałkowej w punktach: xn = n ⋅ h , gdzie h = 100 / 420 , dla n = 0, ..., 419 przy użyciu sześciu kwadratur Newtona–Cotesa. KWADRATURA trapezów Simpsona trzech ósmych Milne'a Bode'a Weddle'a R. Z. Morawski: "Wstęp do metod numerycznych – Całkowanie i różniczkowanie" Iˆ − I 1.88 ⋅ 10- 2 1.41 ⋅ 10- 2 1.17 ⋅ 10- 2 0.93 ⋅ 10- 2 4.39 ⋅ 10-7 - 6.03 ⋅ 10− 9 5-18 Obliczanie całek z osobliwościami i całek niewłaściwych ♦ Metoda #1: obcinanie przedziału całkowania. Przykład: Całkę I ( f ) = −4 ∞ − x2 ∫−∞e dx przedstawić można jako sumę trzech całek: 4 ∞ I1 ( f ) = ∫ e − x dx, I 2 ( f ) = ∫ e − x dx, I 3 ( f ) = ∫ e − x dx 2 2 −4 −∞ 2 4 a następnie pominąć I1 ( f ) i I 3 ( f ) , ponieważ dla | x |> 4 funkcja podcałkowa jest mniejsza niż 0.5 × 10 −6 : 1 1 1 I1 ( f ) = I 3 ( f ) = ∫ e − x dx = ∫ e −t t −1 2 dt < 16 −1 2 ∫ e −t dt = ( − e −t ) < 1.5 ⋅ 10 −8 . 16 4 16 16 ∞ ∞ ∞ 2 2 ∞ 8 Ponieważ I ( f ) = π ≈ 1.772454 , więc pominięcie I1 ( f ) i I 3 ( f ) powoduje błąd względny ok. 2 ⋅ 10 −8 . R. Z. Morawski: "Wstęp do metod numerycznych – Całkowanie i różniczkowanie" 5-19 ♦ Metoda #2: zamiana zmiennych w celu: − transformacji przedziału całkowania (np. [ −∞, ∞ ] ⇒ [ −1, 1] ), − usunięcia osobliwości funkcji podcałkowej. Przykłady: Transformacja v ≡ ( x − a )1−γ dla osobliwości typu ( x − a )γ , 0 ≤ γ < 1: b ∫a f ( x )dx = 1 1−γ ( b − a )1−γ ∫0 γ v 1−γ f ( v 1 1−γ + a )dv , b > a Transformacja v ≡ (b − x )1−γ dla osobliwości typu (b − x )γ , 0 ≤ γ < 1: b ∫a 1 f ( x )dx = 1−γ ( b − a )1−γ ∫0 γ v 1−γ f (b − v 1 1−γ )dv , b > a Transformacja v ≡ e − x dla całki w przedziale półnieskończonym: ∞ ∫0 1 f ( x )dx = ∫ 0 f ( − ln v ) dv v R. Z. Morawski: "Wstęp do metod numerycznych – Całkowanie i różniczkowanie" 5-20 ♦ Metoda #3: Całkowanie przez części: b b ∫a u ( x )v ′( x )dx = [u ( x )v ( x )]ba − ∫ v ( x )u ′( x )dx a przy założeniu, że funkcje u (x ) i v (x ) mają ciągłe pochodne w przedziale [a , b] . Przykład: Całkowanie przez części: 1 I ( f ) = ∫ x −0.5e x dx 0 daje: 1 I( f ) = ∫ x 0 −1 2 x e dx = [2 x1 2 e x ]10 1 12 x − 2 ∫ x e dx = 2e 0 −2 4 32 x 1 4 1 32 x − [ x e ]0 + ∫ x e dx 3 3 0 Funkcja podcałkowa w ostatniej całce jest ciągła w zerze. R. Z. Morawski: "Wstęp do metod numerycznych – Całkowanie i różniczkowanie" 5-21 5.3. Całkowanie funkcji wielu zmiennych – metody klasyczne Całkowanie funkcji wielu zmiennych jest trudniejsze, ponieważ: − konstrukcja wielomianów interpolacyjnych jest możliwa tylko dla położonych węzłów i odpowiednio regularnych obszarów całkowania; − nakłady obliczeniowe rosną bardzo szybko z liczbą zmiennych. odpowiednio Jeżeli obszar całkowania S ⊂ R M da się opisać układem nierówności: a1 ≤ x1 ≤ b1 a2 ( x1 ) ≤ x2 ≤ b2 ( x1 ) ........................................ a M ( x1 , x2 ,..., x M −1 ) ≤ x M ≤ bM ( x1 , x2 ,..., x M −1 ) to całkę wielokrotną można przekształcić w całkę iterowaną: b1 b2 ( x1 ) bn ( x1 , x2 , ..., x M −1 ) a1 a2 ( x1 ) an ( x1 , x2 , ..., x M −1 ) I ( f ) = ∫ ⋅ ⋅ ⋅∫ f ( x1 ,..., x M )dx1 ⋅ ⋅ ⋅ dx M = ∫ dx1 S ∫ dx2 ⋅ ⋅ ⋅ ∫ f ( x1 ,..., xM )dxM której numeryczne wyznaczenie sprowadza się do M -krotnego użycia kwadratur jednowymiarowych. R. Z. Morawski: "Wstęp do metod numerycznych – Całkowanie i różniczkowanie" 5-22 Przykład: Numeryczne całkowanie funkcji f ( x1 , x2 ) w obszarze koła jednostkowego: x2 { 2 S = x ∈ R | −1 ≤ x1 ≤ 1,− 1 − x12 ≤ x2 ≤ 1 − x12 } x1 x oprzeć można na przedstawieniu całki w postaci: −1 x 1,2 ... x 1,N 1− x12 1 I ( f ) = ∫ g ( x1 )dx1, g ( x1 ) = 1,1 ∫ f ( x1 , x2 ) dx2 − 1− x12 Rozwiązanie numeryczne ma postać: N IˆN ( f ) = ∑ An gˆ ( x1,n ) n =0 gdzie gˆ ( x1,n ) jest wyznaczoną numerycznie estymatą g ( x1,n ) : gˆ ( x1,n ) = Mn ∑ Am,n f ( x1,n , x2,m ) m =0 przy czym An i Am ,n są współczynnikami odpowiednich kwadratur Newtona-Cotesa. R. Z. Morawski: "Wstęp do metod numerycznych – Całkowanie i różniczkowanie" 5-23 5.4. Całkowanie funkcji metodą Monte Carlo ♦ Metoda Monte Carlo służy do estymacja wartości oczekiwanej zmiennej losowej y : μy = +∞ ∫ y ⋅ p y ( y )dy −∞ gdzie p y ( y ) jest funkcji gęstości prawdopodobieństwa (f.g.p) zmiennej losowej y . ♦ Jeżeli { yn | n = 1, ..., N } jest ciągiem niezależnych realizacji zmiennej losowej y , to: 1 N μ̂ y = ∑ yn N n =1 jest nieobciążoną estymatą wartości oczekiwanej μ y . [ ♦ Jeżeli y = f (x ) , gdzie x = x1 ... x M μy = +∞ ∫ y ⋅ p y ( y ) ⋅ dy = ∫ −∞ RM ]T , przy czym px ( x ) jest o f.g.p., to: 1 N f ( x ) ⋅ px ( x ) ⋅ dx oraz μˆ y = ∑ f ( x n ) N n =1 gdzie {x n } = {x n | n = 1, ..., N } jest ciągiem niezależnych realizacji wektora losowego x . R. Z. Morawski: "Wstęp do metod numerycznych – Całkowanie i różniczkowanie" 5-24 ♦ Zależność powyższa wykorzystać można do przybliżonego obliczania całki: I ( f ) ≡ ∫ f (x ) ⋅ dx S gdzie S ⊂ R M , zakładając, że wektor losowy x ma rozkład równomierny w pewnym hipersześcianie H ⊃ S , tzn.: ⎧c > 0 dla x ∈ H 1 , gdzie c = px ( x ) = ⎨ dla x ∉ H ⎩0 ∫ dx H Wówczas bowiem: I( f ) = 1 ∫ 1S (x ) ⋅ f (x ) ⋅ px (x ) ⋅ dx cH a zatem: 1 N I( f ) ≅ 1S ( x n ) ⋅ f (x n ) ∑ c ⋅ N n =1 gdzie 1Ω (x ) jest funkcją przynależności zbioru S ⊂ H , zdefiniowaną wzorem: ⎧1 dla x ∈ S 1S ( x ) = ⎨ ⎩0 dla x ∉ S R. Z. Morawski: "Wstęp do metod numerycznych – Całkowanie i różniczkowanie" 5-25 Przykład: Wyznaczanie objętości stożka o parametrach r = 1 i h = 1: 1 1 V =∫∫ 0 − 1− (1− z )2 − y 2 1 dx dy dz = π, ∫ 3 (1− z )2 − y 2 r (1 − z h ) h r { H = x, y , z x < } (1 − z )2 − y 2 , y < 1, z ⊂ [0, 1] R. Z. Morawski: "Wstęp do metod numerycznych – Całkowanie i różniczkowanie" 5-26 Wyznaczanie objetosci stozka, r=1 i h=1, metoda Monte Carlo estymata odniesienie 1.3 1.2 V 1.1 1 0.9 0.8 0.7 1000 2000 3000 4000 5000 6000 7000 N R. Z. Morawski: "Wstęp do metod numerycznych – Całkowanie i różniczkowanie" 8000 9000 10000 5-27 5.5. Różniczkowanie funkcji jednej zmiennej Metody numerycznego różniczkowania stosowane są do: − estymacji gradientu w zadaniach optymalizacji, i w zadaniach rozwiązywania równań nieliniowych, − analizy wrażliwości układów fizycznych, − analizy dokładności systemów pomiarowych, − dynamicznego odtwarzania wielkości mierzonej. Metody oparte na ilorazach różnicowych ♦ Z definicji pochodnej: f ′( x ) = lim h →0 pomocą: f ( x + h) − f ( x) , wynika przybliżenie pochodnej za h f ( x + h) − f ( x) h f ( x) − f ( x − h) − różnicy wstecznej: DB ( f , x, h ) = h f ( x + h) − f ( x − h) − różnicy centralnej: DC ( f , x, h ) = 2h − różnicy progresywnej: DF ( f , x, h ) = R. Z. Morawski: "Wstęp do metod numerycznych – Całkowanie i różniczkowanie" 5-28 ♦ Błąd numerycznego różniczkowania jest sumą: − błędu obcięcia (błędu aproksymacji pochodnej), − błędu realizacja formuły zmiennopozycyjnej. numerycznego różniczkowania w arytmetyce ♦ Dla różnicy progresywnej: − Błąd obcięcia ma wartość: f ( x ) + f ′( x )h + f ′′(ξ )h 2 / 2 − f ( x ) 1 DF ( f , x, h ) − f ′( x ) = − f ′( x ) = f ′′(ξ ) ⋅ h , h 2 ξ ∈ [ x, x + h ] − Błąd realizacja zmiennopozycyjnej można oszacować następująco: [ f ( x + h )(1 + ε 1 ) − f ( x )(1 + ε 0 )](1 + ηo ) ~ (1 + η d ) ≅ DF ( f , x, h ) = h f ( x + h ) − f ( x ) + f ( x + h )ε 1 − f ( x )ε 0 ≅ (1 + ηo + η d ) = h f ( x + h )ε 1 − f ( x )ε 0 f ( x + h) − f ( x) ⎡ ⎤ = + + + η η 1 o d⎥ ⎢ + − h f ( x h ) f ( x ) ⎦ ⎣ R. Z. Morawski: "Wstęp do metod numerycznych – Całkowanie i różniczkowanie" 5-29 δ [DF ( f , x, h )] ≤ ~ 2 f ( x ) EPS f ( x + h ) EPS + f ( x ) EPS + eps + eps ≅ + 2eps f ′( x ) h f ( x + h) − f ( x) gdzie: ε 0 , ε 1 są względnymi błędami obliczania f (x ) i f ( x + h ) , zaś ηo i η d są względnymi błędami zaokrąglenia wyników odejmowania i dzielenia: ε 0 , ε 1 ≤ EPS oraz ηo , ηd ≤ eps − Całkowity błąd przybliżenia następująco: f ′( x ) za pomocą DF ( f , x, h ) można oszacować h 2 ~ | DF ( f , x, h ) − f ′( x ) |≤ | f ′′(ξ ) | + f ( x ) EPS h 2 − Prawa strona tego oszacowania osiąga minimum dla: hˆF = 2 f ( x) f ( x + h) − 2 f ( x) + f ( x − h) EPS , gdzie f ′′(ξ ) ≅ f ′′(ξ ) h2 ♦ Optymalny krok różniczkowania dla pozostałych formuł różnicowych wynosi: − dla różnicy wstecznej: hˆB = hˆF ; − dla różnicy centralnej: hˆC = 3 3 f ( x) EPS . f ′′′(ξ ) R. Z. Morawski: "Wstęp do metod numerycznych – Całkowanie i różniczkowanie" 5-30 Przykład: Wyznaczyć numerycznie pochodną funkcji: 2 ⎛ 1 ⎞ f ( x) = ⎜ − 1⎟ dla x = 1 ⎝ 1+ x2 ⎠ metodą różnicy progresywnej i różnicy centralnej dla różnych wartości kroku h . Oszacować optymalną wartość kroku h , przyjmując eps = 2.22 ⋅ 10 −16 . Wartości dokładne funkcji i jej pochodnych są następujące: f (1) = ( 2 − 1) 2 / 2 ≈ 0.085786... , f ′(1) = ( 2 − 1) / 2 ≈ 0.207106781, f ′′(1) = ( 2 − 1) /( 2 2 ) ≈ 0.1464466... Zakładając, że wszystkie jedynki (łącznie z x = 1 ) reprezentowane są dokładnie, zmiennopozycyjną realizację obliczeń f (1) zapisać można jako: 2 ⎫ ⎧ 1 + ηd ⎪ ⎪ ~ f (1) = ⎨ − 1⎬ (1 + ηo )(1 + η ′p′ ) 2 (1 + η ′p ) (1 + η s ) (1 + η ) ⎪⎭ 1 1 + ⎪⎩ gdzie: η ′p – błąd zaokrąglenia wyniku potęgowania x 2 , η s – błąd sumowania v1 = 1 + x 2 , η [ ] v1 , η d – błąd dzielenia v3 = 1 v 2 ; η0 – błąd odejmowania v 4 = v3 − 1, η ′p′ – błąd potęgowania v 42 . – błąd pierwiastkowania v 2 = R. Z. Morawski: "Wstęp do metod numerycznych – Całkowanie i różniczkowanie" 5-31 [~ ] Wynika stąd następujące oszacowanie błędu: δ f (1) ≤ 13.25eps = EPS −8 oraz optymalne długości kroku różniczkowania: hˆF ≅ 1.1 ⋅ 10 i hˆC ≅ 8.3 ⋅ 10 −8 . wartości estymaty f ′(1) wartości błędu estymaty f ′(1) (różnica progresywna (linia zielona) i różnica centralna (czerwone plusy) R. Z. Morawski: "Wstęp do metod numerycznych – Całkowanie i różniczkowanie" 5-32 Różniczkowanie formuł interpolacyjnych i aproksymacyjnych Jeżeli wartości f ( x ) obarczone są znacznym błędem przypadkowym (np. błędem pomiaru), to bezpośrednie użycie formuł różnicowych może prowadzić do znacznego wzmocnienia wpływu tego błędu na wynik różniczkowania. Liniowe metody interpolacji i aproksymacji prowadzą do estymaty funkcji f ( x ) postaci: K fˆ ( x; p) = ∑ pkϕ k ( x ) k =1 gdzie {ϕ k ( x ) k = 1, 2 , ..., K } jest ciągiem znanych liniowo niezależnych funkcji, zaś p = [ p1 ... p K ]T jest wektorem parametrów uzyskanych w wyniku interpolacji lub aproksymacji. Dla wielu układów {ϕ k ( x )} pochodna fˆ ( x; p) jest dobrym przybliżeniem f ′( x ) , tzn.: K f ′( x ) ≅ ∑ pkϕ k′ ( x ) k =1 R. Z. Morawski: "Wstęp do metod numerycznych – Całkowanie i różniczkowanie" 5-33 Przykład: Wyznaczyć numerycznie pochodną funkcji f ( x ) = Γ( x + 1) dla x ∈ [10, 16] . Jest to funkcja szybko rosnąca dla x ∈ [10, 16] (dla argumentów całkowitych Γ( x + 1) = x! ), którą źle się przybliża wielomianem; łatwiej przybliża się funkcję ln[ f ( x )]. Ponieważ: 1 d ln[ f ( x )] = f ′( x ) dx f ( x) pochodną funkcji f ( x ) można wyznaczyć wg wzoru: fˆ ′( x ) = f ( x ) ⋅ gˆ ′( x ) gdzie ĝ ( x ) jest wielomianem interpolującym ln[ f ( x )]. R. Z. Morawski: "Wstęp do metod numerycznych – Całkowanie i różniczkowanie" 5-34