23
dr hab. Piotr Fronczak Metody numeryczne Wykład nr 6 Różniczkowanie

Prezentacja programu PowerPoint - if.pw.edu.plagatka/numeryczne/wyklad_06.pdf · Różniczkowanie numeryczne Wzory różniczkowania numerycznego znajdują zastosowanie wtedy, gdy

Embed Size (px)

Citation preview

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( xfk

hxf

hxf

hxfhxf k

k

k

Zdefiniujemy operator różniczkowania

)())(()(

)()(

)(1

)1(

xfxfDDxfD

xfxDf

kkk

Zatem

)()()!2!1

1()(22

xfexfDhhD

hxf hD

Zdefiniujmy operatory różnicy zwykłej , i wstecznej :

Czyli

)()()( xfhxfxf

)()1()( xfhxf

Z porównania zależności uzyskujemy wzór na równość operatorów

hDe1

)()()( hxfxfxf

Logarytmując obustronnie otrzymamy

)1ln( hD

)1ln(1 h

D

Podnosząc obustronnie do potęgi k-tej, uzyskamy

kk

k

hD )1ln(

1

432

432

)1ln(

k

k

k

hD )

432(

1 432

hDe1

Ponieważ

Możemy zatem wyprowadzić wzory na dowolne pochodne funkcji f(x) wyrażone

za pomocą różnic zwykłych:

k = 1

)()()()(1

)( 4

413

312

21)1( xfxfxfxf

hxf

k = 2

)()()()(1

)( 5

12104

121132

2

)2( xfxfxfxfh

xf

k = 3

)()()()(1

)( 6

24455

474

233

3

)3( xfxfxfxfh

xf

k

k

k

hD )

432(

1 432

Sprawdź, że

2

321

2

21

21

1

)(3)(4)(5)(2)(''

)()(2)()(''

2

)()(4)(3)('

)()()('

h

xfxfxfxfxf

h

xfxfxfxf

h

xfxfxfxf

h

xfxfxf

iiiii

iiii

iiii

iii

Zróbmy to samo za pomocą różnic wstecznych. Zauważmy, że

Zatem

111

Wstawiając powyższy wzór do wzoru , otrzymujemy

kk

k

k

k

hhD )1ln(

1)1ln(

1 1

Ponieważ

432)1ln(

432

k

k

k

hD

432

1 432

)()()()(

)()()()1()()1)(1(

xfxfhxfhxf

hxfhxfhxfxf

kk

k

hD )1ln(

1

k = 1

)()()(1

)( 3

312

21)1( xfxfxf

hxf

k = 2

)()()(1

)( 4

121132

2

)2( xfxfxfh

xf

k = 3

)()()()(1

)( 6

24345

474

233

3

)3( xfxfxfxfh

xf

k

k

k

hD

432

1 432

Moż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.

)()()!22!12

1(2

2

22

xfexfDhDhh

xfD

h

)()()!22!12

1(2

2

22

xfexfDhDhh

xfD

h

Zdefiniujmy operator różnicy centralnej

)()()(22hh xfxfxf

Zatem

)()( 22 xfeexfD

hD

h

Dee hD

hD

h

222 sinh2

Dh

2)arcsinh(

2

)arcsinh(2

2

hD

Rozwijając w szereg Taylora:

...

27

1

642

531

25

1

42

31

23

1

2

1

2

2753

hD

hhD

2

2

h

xfxfxDf

hh )()()( 22

)()(1)()(

)(22

222 hhhh

xDfxDfhh

xfxfDxfD

2

)()(2)()()()()(1

h

hxfxfhxf

h

hxfxf

h

xfhxf

h

operator

uśredniania

Oszacowanie błędów

k

kk

xfk

hxfhxf )(

!)()( )(

W szczególności:

)1()()()()()( 32)1( hOhOxhfxfhxf

)()()()(

)()1(. 2)1( hOhOh

xfhxfxfrównz

)()(2)()()2()1(. 3)1( hOxhfhxfhxfrównz

)2(()()()()( 32)1( )hOhOxhfxfhxf

)()()()(

)()2(. 2)1( hOhOh

hxfxfxfrównz

)()( 23 hOhO

)(2

)()()( 2)1( hO

h

hxfhxfxf

h

xfxfxfxfxf

h

xfxfxf

h

xfxfxfxf

h

xfxfxf

h

xfxfxfxf

h

xfxfxf

iiiii

iii

iiii

iii

iiii

iii

12

)()(8)(8)()('

2

)()()('

2

)()(4)()('

)()()('

2

)()(4)(3)('

)()()('

2112

11

12

1

21

1

2

2112

2

11

2

12

2

21

12

)()(16)(30)(16)()(''

)()(2)()(''

)()(2)()(''

)()(2)()(''

h

xfxfxfxfxfxf

h

xfxfxfxf

h

xfxfxfxf

h

xfxfxfxf

iiiiii

iiii

iiii

iiii

)(

)(

)(

)(

)(

)(

4

2

2

2

hO

hO

hO

hO

hO

hO

Podsumowanie

)(

)(

)(

)(

4

2

hO

hO

hO

hO

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

122

11

211

2

21

21

))((

))((

))((

))((

))((

))(()(

i

iiii

iii

iiii

iii

iiii

ii yxxxx

xxxxy

xxxx

xxxxy

xxxx

xxxxxf

2

122

11

211

2

21

21

))((

2

))((

2

))((

2)('

i

iiii

iii

iiii

iii

iiii

ii yxxxx

xxxy

xxxx

xxxy

xxxx

xxxxf

Różniczkując

Podstawmy x = xi+1

2

122

11

211

21

21

211

))(())((

2

))(()('

i

iiii

iii

iiii

iiii

iiii

iii y

xxxx

xxy

xxxx

xxxy

xxxx

xxxf

2

122

11

211

21

21

211

))(())((

2

))(()('

i

iiii

iii

iiii

iiii

iiii

iii y

xxxx

xxy

xxxx

xxxy

xxxx

xxxf

Uwagi:

1. Gdy punkty są równomiernie rozłożone, czyli xi+2 - xi+1 = xi+1 - xi = h

211))(2())(()2)((

)('

iiii y

hh

hy

hh

hhy

hh

hxf

h

yyy

hy

hxf ii

iii22

1

2

1)(' 2

21

Wzór dla różnic

centralnych

2. 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) = ex

Policzmy pochodną w punkcie x=0 korzystając z dwupunktowych różnic centralnych.

)(2

)()()(' 211 hO

h

xfxfxf ii

i

hxorazhxgdzie ii 11

)(2

)0(' 2hOh

eef

hh

Podczas obliczeń komputer wprowadza błąd zaokrąglenia

21 ReeRee hhhh

Wartości dokładne

)(22

)(2

)0(' 221221 hOh

RR

h

eehO

h

ReRef

hhhh

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)

121

101

22

21

21

hx

f

xx

hx

f

x

f

f

Operator Laplace’a f f f yy xx

2

i-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 2 +

i-1 i i+1

j+1

j

j-1

=

1

|

1 4 1

|

1

h

1 2

Pochodne mieszane

xy

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 2 =

Bilaplasjan (operator bi-harmoniczny)

y

f

y x

f 2

x

f f

4

4

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