View
0
Download
0
Category
Preview:
Citation preview
Numeerinen integrointi ja derivointi
Keijo Ruotsalainen
Division of Mathematics
Interpolaatiokaavat
◮ Approksimoitava integraali I =∫ b
af (x)dx .
◮ Tasavälinen hila: xi = a + (b−a)in
, i = 0, . . . , n
◮ Funktion f (x) interpolaatiopolynomi
Pn(x) = f (x0) + f [x0, x1](x − x0) + . . .
+ f [x0, . . . , xn](x − x0) · · · (x − xn−1).
◮ Integraalin I approksimaatio In =∫ b
aPn(x)dx .
◮ Approksimaation virhe
I − In =1
(n + 1)!
∫ b
a
f (n+1)(ξx)Πnj=0(x − xj )dx .
Keijo Ruotsalainen Matematiikan jaos 2 / 33
Keskipistekaava◮ Interpolaatiopolynomi: P0(x) = f (a+b
2) = f (x0).
◮ Integroimiskaava on tällöin
I0 =
∫ b
a
P0(x)dx = (b − a)f (a + b
2).
Lause 5.1
Olkoon funktio f (x) kaksi kertaa jatkuvasti derivoituva funktiovälillä [a, b]. Tällöin keskipistekaavan
I0(f ) = (b − a)f (x0)
virhe on
E0(f ) =1
24(b − a)3f (2)(ζ),
missä ζ ∈ [a, b].
Keijo Ruotsalainen Matematiikan jaos 3 / 33
Väliarvolause
Lauseen todistuksessa tarvitaan seuraavaa lausetta
Lause 5.2
Olkoon f (x) jatkuva funktio, ja g(x) funktio, joka ei vaihdamerkkiä integroimisvälillä [a, b]. Tällöin on olemassa pisteζ ∈ [a, b] siten, että
∫ b
a
f (x)g(x)dx = f (ζ)
∫ b
a
g(x)dx .
Keijo Ruotsalainen Matematiikan jaos 4 / 33
Virhekaavan todistus
◮ Vakiointerpolaation virhelauseke: ∀ x1 ∈ [a, b]
f (x) − f (x0) = f [x0, x1](x − x0) +1
2f (2)(ξx)(x − x0)(x − x1)
◮
∫ b
af [x0, x1](x − x0)dx = 0, sillä x0 on välin keskipiste:
◮ Keskipistekaavan virhe:E0(f ) =
1
2
∫ b
af (2)(ξx)(x − x0)(x − x1)dx .
◮ x1 = x0 ⇒ E0(f ) =1
2
∫ b
af (2)(ξx)(x − x0)
2dx .
◮ Funktio f (2)(ξx) on jatkuva ja g(x) = (x − x0)2 ≥ 0, joten
väliarvolauseen nojalla on ζ ∈ [a, b] siten, että
E0(f ) =1
2f (2)(ζ)
∫ b
a
(x − x0)2dx =
1
24(b − a)3f (2)(ζ).
Keijo Ruotsalainen Matematiikan jaos 5 / 33
Puolisuunnikassääntö
◮ Interpolaatiopisteet x0 = a ja x1 = b.
◮ Funktion esitysf (x) = f (x0)− f [x0, x1](x − x0) +
1
2f (2)(ξx)(x − x0)(x − x1).
◮ Integroimiskaava
I1 =b − a
2[f (a) + f (b)]
◮ Puolisuunnikassäännön virhe on
E1(f ) =1
2
∫ b
a
f (2)(ξx)(x − a)(x − b)dx .
Keijo Ruotsalainen Matematiikan jaos 6 / 33
Puolisuunnikassäännön virheVäliarvolauseen nojalla (g(x) = (x − a)(x − b) ≤ 0) on ζ ∈ [a, b]s.e.
E1(f ) =1
2f (2)(ζ)
∫ b
a
(x − a)(x − b)dx .
Lause 5.3
Olkoon funktio f (x) kaksi kertaa jatkuvasti derivoituva funktiovälillä [a, b]. Tällöin puolisuunnikassäännön
I1(f ) =b − a
2[f (a) + f (b)]
virhe on
E1(f ) = −1
12(b − a)3f (2)(ζ),
missä ζ ∈ [a, b].
Keijo Ruotsalainen Matematiikan jaos 7 / 33
Simpsonin sääntö
◮ Interpolaatiopisteet x0 = a, x1 = a+b2
, x2 = b
◮ Interpolaatiopolynomi
P2(x) = f (x0)+ f [x0, x1](x−x0)+ f [x0, x1, x2](x−x0)(x−x1).
◮ Integroimalla saadaan Simpsonin sääntö:
I2(f ) =b − a
6[f (a) + 4f (
a + b
2) + f (b)].
◮ Polynomi-interpolaation virhelauseke (x3 = x1 )
f (x) − P2(x) = f [x0, x1, x2](x − x0)(x − x1)(x − x2) +
f (4)(ξx)
4!Π3
j=0(x − xj ),
Keijo Ruotsalainen Matematiikan jaos 8 / 33
Simpsonin säännön virhe
◮ Oikean puolen kolmannen asteen polynomi on pariton välin[x0, x2] keskipisteen suhteen. Joten sen integraali on nolla.
◮ Jäljelle jäävään virhetermiin voidaan soveltaa väliarvolausettaolettaen, että integroitava funktio on neljä kertaa jatkuvastiderivoituva.
◮ virhetermi
E2(f ) =f (4)(ζ)
4!
∫ b
a
Π3
j=0(x − xj)dx = −(b − a)5
2880f (4)(ζ),
missä ζ on joku piste integroimisväliltä.
Keijo Ruotsalainen Matematiikan jaos 9 / 33
Summattu keskipistekaava◮ Integroimisväli [a, b]◮ n on osavälien lukumäärä.◮ Osavälit [ti , ti+1], i = 0, . . . , n − 1, missä
ti = a + ih, h =b − a
n
◮ Integraali I
I =
∫ b
a
f (x)dx =n−1∑
i=0
∫ ti+1
ti
f (x)dx .
◮ Jokaisella osavälillä sovelletaan keskipistekaavaa
∫ b
a
f (x)dx = h
n−1∑
i=0
f (ti +h
2) +
h3
24
n−1∑
i=0
f (2)(ξi ),
missä ξi ∈ [ti ti+1].
Keijo Ruotsalainen Matematiikan jaos 10 / 33
Summatun keskipistekaavan virhe
◮ Oletus: f (x) on kaksi kertaa jatkuvasti derivoituva,
◮ Kaikilla i = 0, . . . , n − 1
minx∈[a, b]
f (2)(x) ≤ f (2)(ξi) ≤ maxx∈[a, b]
f (2)(x).
◮ Näin ollen
n minx∈[a, b]
f (2)(x) ≤
n−1∑
i=0
f (2)(ξi ) ≤ n maxx∈[a, b]
f (2)(x).
◮ Jatkuva funktio saa kaikki arvot suurimman ja pienimmäarvonsa väliltä, niin on olemassa ξ ∈ [a, b] siten, että
1
n
n−1∑
i=0
f (2)(ξi ) = f (2)(ξ).
Keijo Ruotsalainen Matematiikan jaos 11 / 33
Summattu keskipistekaava
lause
Kaksi kertaa jatkuvasti derivoituvan funktion integraali voidaanlaskea summatulla keskipistekaavalla
I0,n = h
n−1∑
i=0
f (ti +h
2),
jonka virhelauseke on
E0,n =h2(b − a)
24f (2)(ξ).
Keijo Ruotsalainen Matematiikan jaos 12 / 33
Summattu puolisuunnikassääntö
◮ Integroimisväli [a, b] jaetaan n:ään osaväliin
[ti , ti+1], i = 0, . . . , n − 1, ti = a + ih, h =b − a
n
◮ Sovelletaan jokaisella osavälillä puolisuunnikassääntöä.
Summattu puolisuunnikassääntö
I1,n =h
2[f (a) + f (b) + 2
n−1∑
i=1
f (ti )]
Virhelauseke on
E1,n = −h2(b − a)
12f (2)(ξ),
missä ξ ∈ [a, b] on väliarvolauseen nojalla määritelty piste.
Keijo Ruotsalainen Matematiikan jaos 13 / 33
Puolisuunnikassäännön koodi
function int=puolis(a,b,n,fun)h=(b-a)/n;x=a:h:b;dim=length(x);y=fun(x);if size(y)==1y=diag(ones(dim))*y;endint=h/2*(y(1)+y(n+1)+2*sum(y(2:n)));return
Keijo Ruotsalainen Matematiikan jaos 14 / 33
Summattu Simpson
◮ Parillinen määrä osavälejä, ts. n=2m.
◮ Sovelletaan Simpsonin sääntöä osaväleillä[t2i , t2i+2], i = 0, . . . , m − 1.
Summattu Simpsonin sääntö
Neljästi jatkuvasti derivoituvalle funktiolle on voimassa summattuSimpsonin sääntö: (n=2m)
I2,n =h
3[f (a) + f (b) + 4
m∑
i=1
f (t2i−1) + 2
m−1∑
i=1
f (t2i )],
jolle on voimassa virhelauseke
E2,n = −h4(b − a)
180f (4)(ζ), ζ ∈ [a, b]
Keijo Ruotsalainen Matematiikan jaos 15 / 33
Simpson-koodi
function int=simpson(a,b,m,fun)
h=(b-a)/m;
x=[a:h/2:b];
dim=length(x);
y=fun(x);
if size(y)==1
y=diag(ones(dim))*y;
end
int=h/6*(y(1)+2*sum(y(3:2:2*m-
1))+4*sum(y(2:2:2*m))+y(2*m+1));
return
Keijo Ruotsalainen Matematiikan jaos 16 / 33
Automaattinen integrointi
◮ Tavoite: Integraalin∫ b
af (x)dx likiarvo annetulla toleranssilla
ǫ
◮ Laskenta-algoritmi tuottaa jonon {Ik(f ), Ek}k=1,...,N , missä◮ Ik on integraalin likiarvo◮ Ek on a posteriori arvio virheelle.
◮ Yhdistetään◮ Interpolaatiokaavat In,m(k), missä m(k) = 2k on käytettävien
osavälien lukumäärä◮ Ekstrapolaatioidea
Keijo Ruotsalainen Matematiikan jaos 17 / 33
A posteriori virheen arviointiKaksinkertaistetaan joka askeleella osavälien lukumäärä:
I = In,m + c(ξ)hn+p
I = In,2m + c(ξ̃)(h
2)n+p = In,2m +
c(ξ̃)
2n+phn+p ,
missä p = 2, kun n on parillinen, ja p = 1, kun n on pariton.
⇒ I − In,2m =c(ξ̃)
2n+phn+p =
c(ξ̃)
c(ξ)
I − In,m
2n+p≈
I − In,m
2n+p.
Ratkaistaan yhtälöstä I ≈2n+p In,2m−In,m
2n+p−1
⇒ I − In,2m ≈2n+p In,2m − In,m
2n+p − 1− In,2, =
In,2m − In,m
2n+p − 1.
A posteriori virhe-arvio:
Ek =|In,m(k+1) − In,m(k)|
2n+p − 1.
Keijo Ruotsalainen Matematiikan jaos 18 / 33
Esimerkki: Automaattinen Simpsoninsääntö
Esimerkki
Laske integraalin I =∫
1
0ln(1 + x)dx likiarvo 4:n desimaalin
tarkkuudella käyttäen automaattista Simpsonin sääntöä.
Ratkaisu:
k = 0 : I2,1 = 1
6[ln(1) + 4 ln(1.5) + ln(2)] = 0.3858346022
k = 1 : I2,2 = 1
12[ln(1) + ln(2) + 4(ln(1.25) + ln(1.75)) + 2 ln(1.5)]
= 0.3862595628
Virhe-arvio : E1 =I2,2−I2,1
15= 0.2833 · 10−4.
Tarkka arvo I = 2 ln(2)− 1 = 0.3862943611.Todellinen virhe I − I2,2 = 0.347983 · 10−4.
Keijo Ruotsalainen Matematiikan jaos 19 / 33
Euler-Maclaurinin summakaava◮ Formaalisen differentiaalioperaattorin
ehD =
∞∑
k=0
(hD)k
k!, D =
d
dx
avulla◮ Funktion f (x) Taylorin kehitelmä:
f (x + h)− f (x) =
∞∑
k=1
(h ddx)k
k!f (x) = [ehD − 1]f (x).
◮ Taylorin kehitelmä xex−1
=∑
∞
k=0
Bk
k! xk . Luvut Bk ovat
Bernoullin lukuja:
B0 = 1, B1 = −1
2, B2 =
1
6, B3 = B5 = B7 = · · · = 0,
B4 = −1
30, B6 =
1
42, B8 = −
1
30, . . .
Keijo Ruotsalainen Matematiikan jaos 20 / 33
Euler-Maclaurinin summakaava
◮ Sileän funktion Taylorin kehitelmä
f (x) = [ehD − 1]−1(f (x + h)− f (x))
=1
hD−1[f (x + h)− f (x)] −
1
2[f (x + h)− f (x)]
+
∞∑
k=1
B2k
(2k)!h2k−1[f (2k−1)(x + h)− f (2k−1)(x)]
◮ Derivoinnin käänteisoperaatio on integrointi, joten
D−1[f (x + h)− f (x)] = D−1[
∫ x+h
x
f ′(t)dt]
=
∫ x+h
x
D−1f ′(t)dt =
∫ x+h
x
f (t)dt
Keijo Ruotsalainen Matematiikan jaos 21 / 33
Euler-Maclaurinin summakaava
◮ Näin saadaan
h
2[f (x + h) + f (x)] =
∫ x+h
x
f (t)dt
+
∞∑
k=1
B2k
(2k)!h2k [f (2k−1)(x + h)− f (2k−1)(x)].
◮ Soveltamalla kehitelmää summatun puolisuunnikassäännönjokaisella osavälillä saadaan Euler-Maclaurinin summakaava:
I1,n(f ) =
∫ b
a
f (x)dx +
∞∑
k=1
ckh2k .
Keijo Ruotsalainen Matematiikan jaos 22 / 33
Ekstrapolaatio
Koska Euler-Maclaurinin summakaava on voimassa kaikille n ∈ N,niin kaksinkertaistetaan osavälien lukumäärä. Tällöin
I1,2n =
∫ b
a
f (x)dx +
∞∑
k=1
ck(h
2)2k
= I + c1
h2
4+ c2
h4
16+ c3
h6
64+ . . .
Näin ollen saadaan integraalin approksimaatio
4I1,2n − I1,n
3= I + c ′2h
4 + c ′3h6 + c ′4h
8 + . . . ,
jonka virheen asymptoottisen kehitelmän johtava termi on h:nneljäs potenssi.
Keijo Ruotsalainen Matematiikan jaos 23 / 33
Rombergin menetelmä
◮ Summattu puolisuunnikassääntö parillisella määrällä osavälejä
Rk,1 = I1,2k−1 , k = 1, 2, 3, 4, . . . .
◮ Kun k − 1 → k , niin osavälin pituus h → h2.
◮ Integraalin I =∫ b
af (x)dx asymptoottiset kehitelmät (k ≥ 2):
I = Rk−1,1 + c1h2 + c2h
4 + c3h6 + c4h
8 + · · ·
I = Rk,1 + c1
h2
4+ c2
h4
16+ c3
h6
64+ c4
h8
256+ · · · .
◮ Ekstrapolaatioaskel:
I =4I − I
3=
4Rk,1 − Rk−1,1
3+ c2h
4 + c3h6 + c4h
8 + · · ·
◮ Asymptoottisessa kehitelmässä geneeriset vakiot c2m
pienenevät
Keijo Ruotsalainen Matematiikan jaos 24 / 33
Romberg◮ Merkitään (k ≥ 2): Rk,2 =
4Rk,1−Rk−1,1
3,
◮ Edellisen nojalla on kehitelmä
I = Rk,2 + c2h4 + c3h
6 + c4h8 + · · · .
◮ Puolittamalla osavälien pituus saadaan kehitelmät
I = Rk−1,2 + c2h4 + c3h
6 + c4h8 + · · ·
I = Rk,2 + c2
h4
16+ c3
h6
64+ c4
h8
256+ · · ·
jokaiselle k ≥ 3.◮ Ekstrapolaatio:
Rk,3 =42Rk,2 − Rk−1,2
42 − 1,
jolle on voimassa virhekehitelmä
I = Rk,3 + c3h6 + c4h
8 + c5h10 + · · · .
Keijo Ruotsalainen Matematiikan jaos 25 / 33
Rombergin menetelmä
Rombergin menetelmä
Rk,1 = I1,2k−1
Rk,j =4j−1Rk,j−1 − Rk−1,j−1
4j−1 − 1, k ≥ j ≥ 2.
Virhekehitelmän johtava termi on
O((1
2)2n−2).
Käytännön laskennassa virhettä kontrolloidaan seuraavallasäännöllä:
Sääntö
Olkoon integroitava funktio on sileä. Tällöin approksimaatiossaRn,n on d oikeata desimaalia, jos |Rn,n − Rn−1,n−1| <
1
210−d , niin
Keijo Ruotsalainen Matematiikan jaos 26 / 33
Rombergin matlab-koodi
function int=romberg(a,b,n,fun)for i = 1 : n + 1R(i , 1) = puolis(a, b, 2(i−1), fun);endfor j = 2 : n + 1for i = j : n + 1R(i , j) = (4(j−1) ∗ R(i , j − 1)− R(i − 1, j − 1))/(4(j−1) − 1);end
endint=R;return
Keijo Ruotsalainen Matematiikan jaos 27 / 33
Esimerkki
Laske integraalin∫
2
1ln(x)dx likiarvo Rombergin menetelmällä.
Ratkaisu
0.3465735902 0 0 00.376019349 0.3858346021 0 00.383699509 0.386259562 0.38628789 00.3856439099 0.3862920434 0.3862942088 0.3862943090
Keijo Ruotsalainen Matematiikan jaos 28 / 33
1. kertaluvun derivaatan approksimaatio
◮ Derivaatan määritelmästä saadaan yksinkertaisinderivointikaava ns. eteenpäin differenssikaava:
f ′(x) =f (x + h)− f (x)
h+ O(h).
◮ Derivaatan approksimaatio on funktion arvojenlineaarikombinaatio pisteen x ympäristössä, kundiskretisointiparametri h oletetaan riittävän pieneksi.
Keijo Ruotsalainen Matematiikan jaos 29 / 33
Keskeisdifferenssikaava
◮ Funktion arvojen f (x + h) ja f (x − h) Taylorin kehitelmätpisteen x ympäristössä:
1 : f (x + h) = f (x) + hf ′(x) +h2
2f ′′(x) +
h3
6f (3)(ξ+)
0 : f (x) = f (x)
−1 : f (x − h) = f (x) − hf ′(x) +h2
2f ′′(x) −
h3
6f (3)(ξ−)
◮ Ratkaistaan yhtälöryhmästä 1. kertaluvun derivaatta. ⇒keskeisdifferenssikaava
f ′(x) =f (x + h)− f (x − h)
2h−
h2
6
f (3)(ξ+) + f (3)(ξ−)
2.
Keijo Ruotsalainen Matematiikan jaos 30 / 33
Keskeisdifferenssikaava
◮ Oletus: Funktion kolmas derivaatta on jatkuva, niindifferentiaalilaskennan väliarvolauseen nojalla on olemassaξ ∈ [x − h, x + h] siten, että
f (3)(ξ) =f (3)(ξ+) + f (3)(ξ−)
2.
◮ Keskeisdifferenssikaavan virhe
f ′(x) −f (x + h)− f (x − h)
2h=
h2
6f (3)(ξ).
Keijo Ruotsalainen Matematiikan jaos 31 / 33
Päätepistekaavat
◮ Funktion f (x) Taylorin kehitelmät pisteissä x + h ja x + 2h:
−3 : f (x) = f (x)
+4 : f (x + h) = f (x) + hf ′(x) + h2
2f ′′(x) + h3
6f (3)(ξ1)
−1 : f (x + 2h) = f (x) + 2hf ′(x) + 2h2f ′′(x) + 8h3
6f (3)(ξ2)
−f (x + 2h) + 4f (x + h)− 3f (x) = 2hf ′(x) + 2h3
3f ′′′(ξ1)−
4h3
3f ′′′(ξ2
◮ Päätepistekaava
f ′(x) =−3f (x) + 4f (x + h)− f (x + 2h)
2h+
h2
3f (3)(ξ),
◮ Piste ξ on valittu väliarvolauseen nojalla siten, että
f (3)(ξ) = 2f ′′′(ξ2)− f ′′′(ξ1).
Keijo Ruotsalainen Matematiikan jaos 32 / 33
Toisen kertaluvun derivaatta
◮ Ratkaistaan Taylorin kehitelmistä
1 : f (x + h) = f (x) + hf ′(x) + h2
2f ′′(x) + h3
6f (3)(x) + h4
24f (4)(ξ+)
−2 : f (x) = f (x)
1 : f (x − h) = f (x)− hf ′(x) + h2
2f ′′(x)− h3
6f (3)(x) + h4
24f (4)(ξ−)
toisen derivaatan lauseke yhtälöryhmän oikealta puolelta.
◮ Tällöin saadaan
f ′′(x) =f (x + h)− 2f (x) + f (x − h)
h2−
h2
12f (4)(ξ),
missä ξ ∈ [x − h, x + h]. Sen olemassaolo riippuu neljännenderivaatan jatkuvuudesta. Tällöin kuten 1. kertaluvunderivaattojen virhearvioiden johtamisessa sovelletaandifferentiaalilaskennan väliarvolausetta.
Keijo Ruotsalainen Matematiikan jaos 33 / 33
Numeerisen derivoinnin stabiilisuus
◮ Numeeriset derivointikaavat herkkiä pyöristysvirheille.
◮ Olkoon f−1 ja f1 funktion f (x) pyöristetyt arvot pisteissä x−1
ja x1: fi − f (xi ) ≈1
210−k , i = −1, 1.
◮ Keskeisdifferenssikaavan todellinen virhe
f ′(x0)−f1 − f−1
2h= ER −
1
6h2f (3)(ξ)
=f (x1)− f1
2h+
f−1 − f (x−1)
2h−
1
6h2f (3)(ξ)
≤1
2h10−k +
1
6h2 max |f (3)(ξ)| ≡ E (h).
◮ Kiinteällä desimaalitarkkuudella k kokonaisvirheen E (h)maksimi kasvaa, kun hilapisteiden välinen erotus h lähestyynollaa. Toisin sanoen pyöristysvirheet alkavat dominoimaanlaskentaa.
Keijo Ruotsalainen Matematiikan jaos 34 / 33
Recommended