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