dr hab. Piotr Fronczak
Metody numeryczne
Wykład nr 6
Różniczkowanie
Różniczkowanie numeryczne
Wzory różniczkowania numerycznego znajdują zastosowanie wtedy, gdy trzeba wyznaczyć pochodne odpowiedniego rzędu funkcji f(x), która określona jest tablicą lub ma
skomplikowaną postać analityczną.
Dwa podstawowe sposoby różniczkowania numerycznego:
1. Metoda różnic skończonych – metoda polegająca na przybliżeniu pochodnej funkcji poprzez skończone różnice, w zdyskretyzowanej przestrzeni. Można ją wyprowadzić wprost z ilorazu różnicowego, bądź z rozwinięcia w szereg Taylora.
2. Różniczkowanie funkcji aproksymującej –
aproksymujemy punkty wyrażeniem, które może być łatwo różniczkowalne, np. wielomianem, funkcją wykładniczą, itp.
Różniczkowanie numeryczne
Wzory różniczkowania numerycznego znajdują zastosowanie wtedy, gdy trzeba wyznaczyć pochodne odpowiedniego rzędu funkcji f(x), która określona jest tablicą lub ma
skomplikowaną postać analityczną.
Dwa podstawowe sposoby różniczkowania numerycznego:
1. Metoda różnic skończonych – metoda polegająca na przybliżeniu pochodnej funkcji poprzez skończone różnice, w zdyskretyzowanej przestrzeni. Można ją wyprowadzić wprost z ilorazu różnicowego, bądź z rozwinięcia w szereg Taylora.
2. Różniczkowanie funkcji aproksymującej –
aproksymujemy punkty wyrażeniem, które może być łatwo różniczkowalne, np. wielomianem, funkcją wykładniczą, itp.
W przypadku silnie zaszumionych danych różniczkowanie metodą różnic skończonych może dać fatalny efekt.
Wyprowadzenie metody różnic skończonych ze wzoru Taylora
Rozwinięcie funkcji analitycznej f(x) w otoczeniu punktu x w szereg Taylora można wyrazić w postaci
)
! ( )
! ( ) 2
! ( ) 1 ( )
(
( )0 )
2 ( 2 )
1
(
f x
k x h
h f x
h f x
f h
x
f
kk
k
Zdefiniujemy operator różniczkowania
) ( ))
( (
) (
) ( )
(
) ( 1
) 1 (
x f
x f D D x
f D
x f
x Df
k k
k
Zatem
) ( )
(
! ) 2
! 1 1
( ) (
2 2
x f e x
D f h h hD
x
f
hDZdefiniujmy operatory różnicy zwykłej , i wstecznej :
Czyli
) ( )
( )
( x f x h f x
f
) ( ) 1
( )
( x h f x
f
Z porównania zależności uzyskujemy wzór na równość operatorów
1 e
hD) (
) ( )
( x f x f x h
f
Logarytmując obustronnie otrzymamy
) 1
ln(
hD
) 1
1
ln(
hD
Podnosząc obustronnie do potęgi k-tej, uzyskamy
kk k
D h 1 ln( 1 )
)
22 33 441
ln(
k k
k
D h )
4 3
( 2
1
2 3 4
1 e
hDPonieważ
Możemy zatem wyprowadzić wzory na dowolne pochodne funkcji f(x) wyrażone za pomocą różnic zwykłych:
k = 1
1 ( ) ( ) ( ) ( ) )
(
21 2 31 3 41 4) 1
(
f x f x f x f x
x h f
k = 2
1 ( ) ( ) ( ) ( )
)
(
2 2 3 1211 4 1210 5) 2
(
f x f x f x f x
x h f
k = 3
1 ( ) ( ) ( ) ( )
)
(
3 3 23 4 47 5 2445 6) 3
(
f x f x f x f x
x h f
k k
k
D h )
4 3
( 2
1
2 3 4
Sprawdź, że
2
3 2
1 2
2 1
2 1
1
) (
3 ) (
4 ) (
5 ) ( ) 2
( ''
) (
) (
2 ) ) (
( ''
2
) (
) (
4 ) ( ) 3
( '
) ( )
) ( ( '
h
x f x
f x
f x
x f f
h
x f x
f x
x f f
h
x f x
f x
x f f
h
x f x
x f f
i i
i i
i
i i
i i
i i
i i
i i
i
Zróbmy to samo za pomocą różnic wstecznych. Zauważmy, że
Zatem
1 1
1Wstawiając powyższy wzór do wzoru , otrzymujemy
k k
kk k
h
D h 1 ln( 1 )
) 1
1 ln(
1
Ponieważ
4 3
) 2 1
ln(
4 3
2
k
k k
D h
4 3
2
1
2 3 4 ( ) ( ) ( )
) (
) (
) (
) (
) 1
( ) ( ) 1
)(
1 (
x f x
f h
x f h
x f
h x
f h
x f h
x f x
f
kk k
D h 1 ln( 1 )
k = 1
1 ( ) ( ) ( ) )
(
21 2 13 3) 1
(
f x f x f x
x h f
k = 2
1 ( ) ( ) ( ) )
(
2 2 3 1211 4) 2
(
f x f x f x
x h f
k = 3
( ) ( ) ( ) ( )
) 1
(
3 3 23 4 74 5 2434 6) 3
(
f x f x f x f x
x h
f
k
k k
D h
4 3
2
1
2 3 4Możemy zatem wyprowadzić wzory na dowolne pochodne funkcji f(x) wyrażone za pomocą różnic wstecznych:
Różnice centralne
Wyprowadzone wcześniej wzory różniczkowania numerycznego funkcji f(x) w punkcie x = x0 mają tę wadę, że wykorzystuje się w nich jedynie wartości
funkcji f(x) dla argumentów leżących z jednej strony x0 . Wady tej nie posiadają wzory wykorzystujące wartości funkcji f(x) po prawej i po lewej stronie punktu x
= x0 . Są to wzory symetryczne, oparte na różnicach centralnych.
) ( )
(
! ) 2 2
! 1 1 2
2 (
2 2 2
x f e x
D f h
D h x h
f
Dh
) ( )
(
! ) 2 2
! 1 1 2
2 (
2 2 2
x f e
x D f
h D
h x h
f
Dh
Zdefiniujmy operator różnicy centralnej
) (
) (
)
( x f x
2hf x
2hf
Zatem
) ( )
( x e
2e
2f x
f
DD h h
D
e
e
D hD h h
2 2
2
2 sinh
h D ) 2
arcsinh(
2 ) arcsinh(
2
2
D h
Rozwijając w szereg Taylora:
...
2 7 1 6 4 2
5 3 1 2
5 1 4 2
3 1 2
3 1 2 1 2
2
3
5
7D h
h D h
2
2
h
x f x
x f Df
h
h
) ( )
) (
(
2
2 ( ) ( )
1 )
( )
) (
(
2 2 2 22 h h
h h
x Df x
h Df h
x f x
D f x
f
D
2
) (
) ( 2 ) (
) (
) ( )
( )
( 1
h
h x f x
f h
x f h
h x f x
f h
x f h
x f h
operator uśredniania
Oszacowanie błędów
k
k k
x k f
x h f h
x
f ( )
) ! ( )
(
( )W szczególności:
) 1 ( )
( )
( )
( )
( )
( x h f x hf
(1)x O h
2O h
3f
) ( )
) ( ( )
) ( ( )
1 (
.
(1)O h O h
2h
x f h
x x f
f równ
z
) ( )
( 2
) (
) (
) 2 ( ) 1 (
. f x h f x h hf
(1)x O h
3równ
z
) 2 ( (
) ( )
( )
( )
( x h f x hf
(1)x O h
2O h
3)
f
) ( )
) ( (
) ) (
( )
2 (
.
(1)O h O h
2h
h x f x
x f f
równ
z
) ( )
( h
3O h
2O
) 2 (
) (
) ) (
( 2
) 1
( O h
h
h x f h x x f
f
h
x f x
f x
f x
x f f
h x f x
x f f
h
x f x
f x
x f f
h x f x x f
f
h
x f x
f x
x f f
h x f x
x f f
i i
i i
i
i i
i
i i
i i
i i
i
i i
i i
i i
i
12
) ( ) ( 8 ) ( 8 ) ) (
( '
2
) ( ) ) (
( '
2
) ( ) ( 4 ) ) (
( '
) ( ) ) (
( '
2
) ( ) ( 4 ) ( ) 3
( '
) ( ) ) (
( '
2 1
1 2
1 1
1 2
1
2 1
1
2
2 1
1 2
2
1 1
2 1 2
2
2 1
12
) ( ) ( 16 ) ( 30 ) ( 16 ) ) (
( ''
) ( ) ( 2 ) ) (
( ''
) ( ) ( 2 ) ) (
( ''
) ( ) ( 2 ) ) (
( ''
h
x f x
f x
f x
f x
x f f
h
x f x f x
x f f
h
x f x
f x
x f f
h
x f x
f x
x f f
i i
i i
i i
i i
i i
i i
i i
i i
i i
) (
) (
) (
) (
) (
) (
4 2 2 2
h O
h O
h O
h O
h O
h O Podsumowanie
) (
) (
) (
) (
4 2
h O
h O
h O
h O
Dwupunktowe różnice zwykłe Trzypunktowe różnice zwykłe Dwupunktowe różnice wsteczne Trzypunktowe różnice wsteczne Dwupunktowe różnice centralne Czteropunktowe różnice centralne
Trzypunktowe różnice zwykłe Trzypunktowe różnice wsteczne
Trzypunktowe różnice centralne Pięciopunktowe różnice centralne
Pierwsze pochodne
Drugie pochodne
Różniczkowanie za pomocą wielomianów Lagrange’a
Zapiszmy wielomian przechodzący przez trzy punkty (xi, yi), (xi+1, yi+1), (xi+2, yi+2)
2 1
2 2
1 1
2 1
1
2 2
1
2 1
) )(
(
) )(
( )
)(
(
) )(
( )
)(
(
) )(
) (
(
ii i
i i
i i
i i
i i i
i i
i i
i i
i
i
i
y
x x
x x
x x x y x
x x
x x
x x x y x
x x
x x
x x x
x x f
2 1
2 2
1 1
2 1
1
2 2
1
2 1
) )(
(
2 )
)(
(
2 )
)(
( ) 2 (
'
ii i
i i
i i
i i
i i i
i i
i i
i i
i
i
i
y
x x
x x
x x
y x x
x x x
x x
y x x
x x
x
x x
x x f
Różniczkując
Podstawmy x = xi+1
2 1
2 2
1 1
2 1
1
2 1
2 1
2 1
1
( )( ) ( )( )
2 )
)(
) ( (
'
ii i
i i
i i
i i
i i i
i i
i i
i i
i i
i i
i
y
x x
x x
x y x
x x
x x
x x
y x x
x x
x
x x x
f
2 1
2 2
1 1
2 1
1
2 1
2 1
2 1
1
( )( ) ( )( )
2 )
)(
) ( (
'
ii i
i i
i i
i i
i i i
i i
i i
i i i
i
i i
i
y
x x
x x
x y x
x x
x x
x x y x
x x
x x
x x x
f
Uwagi:
1. Gdy punkty są równomiernie rozłożone, czyli xi+2 - xi+1 = xi+1 - xi = h
2 1
1
) ( )( 2 ) ( )( ) ( 2 )( )
(
'
i i ii
y
h h y h
h h
h y h
h h
x h f
h y y y
y h x h
f
i i i i i2 2
1 2
) 1 (
'
1
2
2
Wzór dla różnic centralnych2. Zaleta nr 1: punkty nie muszą być równomiernie rozłożone
3. Zaleta nr 2: możemy policzyć pochodną w dowolnym punkcie między xi a xi+2.
Rozważmy funkcję
f(x) = e
xPoliczmy pochodną w punkcie x=0 korzystając z dwupunktowych różnic centralnych.
) 2 (
) ( )
) ( (
' 1 1 O h2
h x f x
x f
f i i i
gdzie x
i1 h oraz x
i1 h )
2 ( )
0 (
' O h
2h e f e
h
h
Podczas obliczeń komputer wprowadza błąd zaokrąglenia
2
1
e e R
R e
e
h
h
h
h
Wartości dokładne
) 2 (
) 2 2 (
) 0 (
'
1 2 2 1 2O h
2h R R
h e h e
h O
R e
R f e
h h
h
h
Błąd obcięcia Błąd
zaokrąglenia
Gdy zmniejszamy h, błąd obcięcia maleje, ale błąd zaokrąglenia rośnie.
h całkowity
błąd
Błąd w różniczkowaniu numerycznym
(i-2, j) (i-1, j) (i, j) (i+1, j) (i+2, j) (i, j+1)
(i, j+2)
(i, j-1)
(i, j-2)
(i+1, j+1) (i-1, j+1)
(i-1, j-1) (i+1, j-1)
Pochodne cząstkowe
Proste rozszerzenie metod dla pochodnych zupełnych (jednowymiarowych)
1 2 1
1 0
1
2 2
2 1
2 1
h x
f xx
h x
f x
f
f
Operator Laplace’a
2f f
xx f
yyi-1 i i+1
j+1
j
j-1
|
1 2
1
| h
1
2
i-1 i i+1
j+1
j
j-1
1
|
2
| 1
h 1
+
2i-1 i i+1
j+1
j
j-1
=
1
|
1 4
1
| 1
h 1
2
Pochodne mieszane
x y
f
i-1 i i+1
j+1
j
j-1
0 0
0
|
|
|
1 0
-1
|
|
|
0 0
0
h 2
1
y
=
i-1 i i+1
j+1
j
j-1
1 0
1
|
|
|
0 0
0
|
|
|
1 0
1
h 4
1
=
2Bilaplasjan (operator bi-harmoniczny)
y
f y
x 2 f x
f f
44 2
2 2 4
4 4
i-1 i i+1
j+1 j j-1
i-2 i+2
j-2
j+2
1
|
2 8
2
|
|
|
1 8
20 8
1
|
|
|
2 8
2
| 1
h 1
4