Wykład nr 7 - Wydział Fizyki Politechniki Warszawskiejagatka/numeryczne/wyklad_07.pdf ·...

Post on 01-Mar-2019

234 views 1 download

Transcript of Wykład nr 7 - Wydział Fizyki Politechniki Warszawskiejagatka/numeryczne/wyklad_07.pdf ·...

dr hab. Piotr Fronczak

Metody numeryczne

Wykład nr 7

Całkowanie numeryczne

Całkowanie numeryczne to przybliżone obliczanie całek oznaczonych.

Metody całkowania numerycznego polegają na przybliżeniu całki za pomocą

odpowiedniej sumy ważonej wartości całkowanej funkcji w kilku punktach. Aby

uzyskać dokładniejsze przybliżenie dzieli się przedział całkowania na

niewielkie fragmenty. Ostateczny wynik jest sumą oszacowań całek w

poszczególnych podprzedziałach.

I. Metoda prostokątów

b

a

b

a

abafdxafdxxffI ))(()()()(

b

a

b

a

abbfdxbfdxxffI ))(()()()(

Podzielmy przedział [a,b] na N podprzedziałów.

))((...))(())(()()( 1232121 NNN

b

a

xxxfxxxfxxxfdxxffI

N

i

iii xxxffI1

1 ))(()(

Gdy podprzedziały są równe

N

i

ixfhfI1

)()(

Pewnym udoskonaleniem metody kwadratów jest wybór wartości funkcji

w środku przedziału.

b

a

abba

fdxba

ffI )(22

)(

N

i

ii xxfhfI

1

1

2)(

W przypadku wielu podprzedziałów:

II. Metoda trapezów

x0 x1 x

f(x)

L(x) Przybliżamy funkcję podcałkową

prostą.

010 1

0 1 1 0

0 1

( ) ( ) ( )

dx a x , b x , , d ;

h

0( ) (1 ) ( ) ( ) ( )

1

x xx xL x f x f x

x x x x

x alet h b a

b a

x aL f a f b

x b

010 1

0 1 1 0

0 1

( ) ( ) ( )

dx a x , b x , , d ;

h

0( ) (1 ) ( ) ( ) ( )

1

x xx xL x f x f x

x x x x

x alet h b a

b a

x aL f a f b

x b

010 1

0 1 1 0

0 1

( ) ( ) ( )

dx a x , b x , , d ;

h

0( ) (1 ) ( ) ( ) ( )

1

x xx xL x f x f x

x x x x

x alet h b a

b a

x aL f a f b

x b

1

0

1 1

0 0

1 12 2

0 0

( ) ( ) ( )

( ) (1 ) ( )

( ) ( ) ( ) ( ) ( )2 2 2

b b

a af x dx L x dx h L d

f a h d f b h d

hf a h f b h f a f b

W przypadku wielu podprzedziałów:

N

i

ii xfxfh

fI1

1)()(2

)(

II. Metoda Simpsona 1/3

x0 x1 x

f(x)

x2 h h

L(x)

Przybliżamy funkcję podcałkową

parabolą.

1 xx

0 xx

1 xx

h

dxd ,

h

xx ,

2

abh

2

ba x ,bx ,ax let

)x(f)xx)(xx(

)xx)(xx(

)x(f)xx)(xx(

)xx)(xx( )x(f

)xx)(xx(

)xx)(xx()x(L

2

1

0

1

120

2

1202

10

1

2101

20

0

2010

21

1 xx

0 xx

1 xx

h

dxd ,

h

xx ,

2

abh

2

ba x ,bx ,ax let

)x(f)xx)(xx(

)xx)(xx(

)x(f)xx)(xx(

)xx)(xx( )x(f

)xx)(xx(

)xx)(xx()x(L

2

1

0

1

120

2

1202

10

1

2101

20

0

2010

21

1 xx

0 xx

1 xx

h

dxd ,

h

xx ,

2

abh

2

ba x ,bx ,ax let

)x(f)xx)(xx(

)xx)(xx(

)x(f)xx)(xx(

)xx)(xx( )x(f

)xx)(xx(

)xx)(xx()x(L

2

1

0

1

120

2

1202

10

1

2101

20

0

2010

21

1 xx

0 xx

1 xx

h

dxd ,

h

xx ,

2

abh

2

ba x ,bx ,ax let

)x(f)xx)(xx(

)xx)(xx(

)x(f)xx)(xx(

)xx)(xx( )x(f

)xx)(xx(

)xx)(xx()x(L

2

1

0

1

120

2

1202

10

1

2101

20

0

2010

21

)x(f2

)1()x(f)1()x(f

2

)1()(L 21

2

0

1

1

23

2

1

1

3

1

1

1

23

0

1

12

1

0

2

1

1

10

1

1

b

a

)2

ξ

3

ξ(

2

h)f(x

)3

ξ(ξ)hf(x)

2

ξ

3

ξ(

2

h)f(x

)dξ1ξ(ξ2

h)f(x)dξξ1()hf(x

)dξ1ξ(ξ2

h)f(xdξ)(Lhf(x)dx

)x(f2

)1()x(f)1()x(f

2

)1()(L 21

2

0

)f(x)4f(x)f(x3

hf(x)dx 210

b

a

W przypadku N podprzedziałów o szerokości h = (b – a) / N:

UWAGA: Ponieważ wielomian kwadratowy jest określony poprzez trzy punkty

(a zatem dwa przedziały), to liczba przedziałów musi być parzysta.

)()(4)(3

)(),()( 11

6,4,2

iiii

N

i

i xfxfxfh

fIgdziefIfI

)()(2)(4)(3

)(1

7,5,36,4,2

bfxfxfafh

fIN

j

j

N

i

i

Jest to ważona suma wartości funkcji w punktach definiujących podprzedziały.

II. Metoda Simpsona 3/8

x0 x1 x

f(x)

x2 h h

L(x)

x3 h

Przybliżamy funkcję podcałkową

wielomianem trzeciego stopnia.

)x(f)xx)(xx)(xx(

)xx)(xx)(xx(

)x(f)xx)(xx)(xx(

)xx)(xx)(xx(

)x(f)xx)(xx)(xx(

)xx)(xx)(xx(

)x(f)xx)(xx)(xx(

)xx)(xx)(xx()x(L

3

231303

210

2

321202

310

1

312101

320

0

302010

321

)x(f)x(f3)x(f3)x(f8

h3

3

a-bh ; L(x)dxf(x)dx

3210

b

a

b

a

W przypadku N podprzedziałów o szerokości h = (b – a) / N:

UWAGA: Ponieważ wielomian kubiczny jest określony poprzez cztery punkty

(a zatem trzy przedziały), to liczba podprzedziałów musi być podzielna przez 3.

)()(2)()(3)(8

3)(

2

10,7,4

1

8,5,2

1 bfxfxfxfafh

fIN

j

j

N

i

ii

Przykład: dxxeI4

0

x2

(= 5216.93)

metoda

prostokątów

metoda

trapezów

metoda

Simpsona 1/3

metoda

Simpsona 3/8

N = 1 436 23847 15898 6819

-91.64% 357.19% 204.79% 30.73%

N = 6 4749 6179 5331 5430

-8.95% 18.46% 2.20% 4.10%

N = 12 5094 5468 5225 5235

-2.34% 4.83% 0.17% 0.36%

N = 18 5162 5326 5218 5220

-1.04% 2.11% 0.04% 0.08%

Oszacowanie błędów

Metoda prostokątów

b

a

b

a

abafdxafdxxffI ))(()()()(

))((')()( axfafxf

2))(('2

1))(())((')()( abfabafdxaxfafdxxf

b

a

b

a

b

a

abafdxxfE ))(()(Błąd wynosi

Rozwijając f(x) w szereg Taylora blisko punktu a otrzymujemy

gdzie jest punktem między a i b.

Całkując obie strony tego równania otrzymujemy

2))(('2

1abfE Zatem błąd wyniesie

Zależy on od szerokości przedziału całkowania i wartości pierwszych

pochodnych f(x) w tym przedziale.

Błąd można znacząco zredukować dzieląc przedział na mniejsze podprzedziały.

2))(('2

1abfE

Ponieważ

2)('2

1hfE ii

to

N

i

i

i

i fhEE1

2 )('2

1

Całkowity błąd

N

f

f

N

i

i 1

)('

'

Przyjmując, że średnio

'2

)(fh

abE

N

abh

)( oraz

)(hO

2))((2

1))(()()( xafxaxfxfaf

b

a

abfabbfdxxfabaf 3))((6

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

b

a

abfabbfafdxxf 3))((12

1)))(()((

2

1)(

Metoda trapezów

Rozwijając w szereg Taylora

b

a

b

a

abfdxxfxaafbafdxxfabaf 3))((6

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

Całkując

b

a

b

a

b

a

dxxfxxfdxxfx )()()(Pamiętając, że

N

f

f

N

i

i 1

)(''

''

Przyjmując, że średnio

N

abh

)( oraz

b

a

abfabbfafdxxf 3))((12

1)))(()((

2

1)(

)(24

)( 22 hOhfab

E

Metoda prostokątów (udoskonalona)

)(180

)( 44 hOhfab

E IV

Metoda Simpsona 1/3

)(80

)( 44 hOhfab

E IV

Metoda Simpsona 3/8

)(12

)( 22 hOhfab

E

Otrzymujemy

Ekstrapolacja Richardsona

...''')( 21 kkk hKhKKhhII

)()( 1 kk hOKhhII

)()2/()2/( 1 kk hOhKhII

Idea: zredukować błąd metody numerycznej z O(hk) do O(hk+1)

Rozwińmy całkę jako funkcję h w szereg wokół punktu h=0.

K,K’,K’’ niewiadome – reprezentują wartości błędów

I – rzeczywista wartość całki

I(h) – numeryczna wartość całki

Redukując h otrzymujemy inne równanie na I:

Pamiętajmy, że O(hk+1) w obu równaniach jest inne.

(2)

oraz (1)

)(2

)2/()()2/()2/(

)()(

11

1

k

k

kkk

kk

hOKh

hIhOhKhII

hOKhhII

)()()2/(2

)()()()2/(212

2 2

1

11

kk

kkkkkk

kk

hOhIhI

hOKhhIhOKhhI)I-(

II (1)(2)

Zatem mamy dwa równania na I

Wyeliminujmy wiodący błąd K:

)(12

)()2/(2 1

k

k

k

hOhIhI

I

Czyli wyeliminowaliśmy błąd Khk i zredukowaliśmy rząd błędu z k do k+1.

Przykład: metoda trapezów

2

12

)()( hf

abhII

2

11)( KhhII

2

22)( KhhII

K jest takie same (średnia wartość

drugiej pochodnej po f nie zależy

od h).

2

2

1

2

2

2

11

1

)()(

h

h

hIh

hhI

I

Eliminując K otrzymujemy:

Dla h1 = 2h2

3

)()(4 12 hIhII

=> Błąd O(h4) ...)( 6

3

4

2

2

1 hKhKhKhIIMożna pokazać, że

4

11)( KhhII

4

22)( KhhII

4

2

1

2

4

2

11

1

)()(

h

h

hIh

hhI

I

Eliminując K otrzymujemy:

Dla h1 = 2h2

15

)()(16 12 hIhII

Błąd O(h6)

Gdy mamy całkę obliczoną numerycznie z dokładnością O(h4) postępujemy

analogicznie:

Uogólnienie:

Jeśli In jest przybliżeniem wartości całki przy użyciu n podprzedziałów (krok h),

a I2n jest przybliżeniem wartości całki przy użyciu 2n podprzedziałów (krok h/2)

Jeśli oba przybliżenia mają ten sam błąd rzędu h p, to nowe przybliżenie całki

12

2 2

p

nn

p III

będzie miało błąd rzędu h p+2.

3, 2, 1,k

;14

4 ,,1

1, k

kjkj

k

kj

III

255

256

63

64

15

16

3

4

16/

8/

4/

2/

)()()()()(

43210

3,3,12,2,11,1,10,0,1

0,4

1,30,3

2,21,20,2

3,12,11,10,1

4,03,02,01,00,0

108642

jjjjjjjj IIIIIIII

Ih

IIh

IIIh

IIIIh

IIIIIh

hOhOhOhOhO

kkkkk

Metoda Romberga

Metoda ta zwiększa dokładność oszacowania całki poprzez sukcesywne

zastosowanie ekstrapolacji Richardsona.

926477.5216dxxeI4

0

x2

%00050.0%00168.0%0053.0%0527.0%66.2

95.535525.0

68.521976.57645.0

20.521775.525679.72881

01.521714.522998.56702.121422

95.521684.522468.549941.82407.238474

)()()()()(

43210

.

108642

h

h

h

h

h

hOhOhOhOhO

kkkkk

trapezówMet

Przykład:

Błąd przy całkowaniu podstawową

metodą trapezów.

By uzyskać błąd rzędu 10-8 należy

przyjąć krok 10-8 (czyli 108 podprzedziałów)

Kolejne przybliżenia metodą Romberga

O(h2), O(h4) i O(h6).

Ten sam błąd można uzyskać przy

znacznie mniejszej liczbie podprzedziałów.

Kwadratura Gaussa na przedziale [-1, 1]

Dotychczas wszystkie metody wykorzystywały do obliczenia całki ważone wartości

równo rozmieszczonych punktów. Położenia punktów były stałe dla danej metody.

W metodzie zwanej kwadraturą Gaussa nie są rozłożone równomiernie (ponadto

punkty krańcowe również nie są brane pod uwagę). Położenie punktów oraz

odpowiadające im wagi są dobierane tak, by zminimalizować błąd.

Wybieramy (c1, c2, x1, x2) tak, by metoda zwróciła dokładną wartość całki, gdy

funkcja ma postać f(x) = x0, x1, x2, x3

)()()()()( 2211

1

11

nni

n

i

i xfcxfcxfcxfcdxxf

)f(xc)f(xc

f(x)dx: n

2211

1

12

x2 x1 -1 1

Ogólna postać kwadratury Gaussa

Dokładna całka dla f = x0, x1, x2, x3

– Cztery równania z czterema niewadomymi

)f(xc)f(xcf(x)dx: n 2211

1

12

3

1

3

1

1

1

0

3

2

0

211

2

1

2

1

3

22

3

1

1

11

33

2

22

2

1

1

11

22

221

1

11

2

1

11

x

x

c

c

xcxcdxxxf

xcxcdxxxf

xcxcxdxxf

ccdxf

)3

1()

3

1()(

1

1ffdxxfI

-1 0 1

0.5

1.0

f(x) = x2

3

1

3

1

Kwadratura Gaussa daje dokładną wartość,

gdy funkcja f(x) = 1, x, x2, x3, lub liniowa kombinacja

powyższych.

-1 0 1

0.5

1.0

3

1

3

1

46829.1)cos(

1

1

dxx

676.13

1cos

3

1cos

Błąd 4.2%

)()()()(:3 332211

1

1xfcxfcxfcdxxfn

x3 x1 -1 1 x2

Aby zwiększyć dokładność obliczeń należy wziąć więcej wyrazów w kwadraturze:

Wybieramy (c1, c2, c3, x1, x2, x3) tak, by metoda zwróciła dokładną wartość całki,

gdy funkcja ma postać f(x) = x0, x1, x2, x3, x4, x5

5

33

5

22

5

11

1

1

55

4

33

4

22

4

11

1

1

44

3

33

3

22

3

11

1

1

33

2

33

2

22

2

11

1

1

22

332211

1

1

321

1

1

0

5

2

0

3

2

0

21

xcxcxcdxxxf

xcxcxcdxxxf

xcxcxcdxxxf

xcxcxcdxxxf

xcxcxcxdxxf

cccxdxf

5/3

0

5/3

9/5

9/8

9/5

3

2

1

3

2

1

x

x

x

c

c

c

Sześć równań z sześcioma niewiadomymi

)5

3(f

9

5)0(f

9

8)

5

3(f

9

5dx)x(fI

1

1

46829.1)cos(

1

1

dxx

676.13

1cos

3

1cos

Błąd 4.2%

68285.15

3cos

9

50cos

9

8

5

3cos

9

5

Błąd 0.005%

Wagi i położenia punktów Gaussa są słuszne tylko w przypadku całkowania

w granicach [-1, 1].

dt

abbatabf

dtabdx

baabtxdxxf

b

a2

)(

2

)(

)(2

1

)(2

1

)(

1

1

W ogólności konieczna transformacja zmiennych:

Przykład:

926477.52164

0

2 dxxeI x

1

1

1

1

444

0

2 )()44(

2;2222

dttfdtetdxxeI

dtdxtab

tab

x

tx

%)37.0(54375.5197

)339981.0()339981.0(652145.0

)861136.0()861136.0(34785.0)(1

1

ff

ffdttfI

Przybliżenie czterema punktami Gaussa:

0 4 8

0

3

6

N

i

ii xfxfh

fI1

1)()(2

)(

]4840400[24

]54707054[24

]24646472[24

2688]256496496448[23

256

496

448

Całki wielokrotne

A

b

a

dxxGdAyxfI )(),(

)(

)(

),()(

xp

xg

dyyxfxG