Upload
dodan
View
246
Download
4
Embed Size (px)
Citation preview
Numerisk løsning av differensiallikninger
Eulers metode,Eulers midtpunktmetode,Runge Kuttas metode,
Taylorrekkeutvikling*og
Likninger av andre orden
Forelesning uke 42, 2007
MAT-INF1100
Forelesning uke 42, 2007 Numerisk løsning av differensiallikninger Eulers metode,Eulers midtpunktmeto
Diskretsering
Utgangspunkt: differensiallikning for y(x)y tilnærmes i diskrete punkter xn = nh: y(xn) ≈ yn. ⇒Tilnærmelse til y representeres ved følge (sample).Settet av x-verdier {xn} kalles ofte gitter el. grid
x
y
y0y1
y2
y3
h
x0 x1 x2 x3
y1, y2, y3 ... beregnes helst en for en i rekkefølge
Forelesning uke 42, 2007 Numerisk løsning av differensiallikninger Eulers metode,Eulers midtpunktmeto
Eulers metode ( K. 10.8.1)
Likning: y ′(x) = f (x , y(x)), initialbetingelse: y(0) = y0
I punkt xn = nh tilnærmer vi den deriverte med ensidig differens
y ′ ≈ yn+1−yn
h,
og setter inn i likning for x = xn
yn+1 − yn
h= f (xn, yn) ⇒ yn+1 = yn + hf (xn, yn).
“Neste y er naværende y pluss h ganger naværende endringsrate”I rekkefølge beregnes y1, y2, y3.....
Eksempel pa endelig differense metode
(deriverte i likning byttes ut med differenser)
I Kalkulus skrives formler med n − 1 og n ikke n og n + 1
Forelesning uke 42, 2007 Numerisk løsning av differensiallikninger Eulers metode,Eulers midtpunktmeto
Demonstrasjonseksempel i figurer og analyse
Likningsett: y ′ = ay , y(0) = y0
Formelløsning: y(x) = y0eax
For hver y0 far vi en unik løsning
Utregningssekvens
initialbet. ⇒ y0 er gitty1 = y0 + hay0 ⇒ y1 beregnesy2 = y1 + hay1 ⇒ y2 beregnes
...yi+1 = yi + hayi ⇒ yi+1 beregnes
...(Merk: ayi stigningsrate ved xi = ih.)
Metoden er veldig enkel!
Forelesning uke 42, 2007 Numerisk løsning av differensiallikninger Eulers metode,Eulers midtpunktmeto
Eulers metode; geometrisk tolkning
x
yy(x)
y0y1
y2
y3
h
x0 x1 x2 x3
Tynne bla linjer er løsninger av y ′ = ay med andre startverdier.Numerisk løsning: skritter fram langs tangenter til løsningskurver.I illustrert tilfelle (y ′ = ay) øker feil systematisk.
Forelesning uke 42, 2007 Numerisk løsning av differensiallikninger Eulers metode,Eulers midtpunktmeto
Midtpunktmetoder
I Eulers metode bruker vi asymmetrisk differens for derivert
y(xn + h) − y(xn)
h≈ y ′(xn) = f (xn, yn).
Denne er unøyaktig. (Kompendium, kap. 9.6)
Midtpunktformel
y(xn + h) − y(xn)
h≈ y ′(xn +
1
2h) =?
er mer nøyaktig.Men, hvilket uttrykk skal inn pa høyresiden ?
Forelesning uke 42, 2007 Numerisk løsning av differensiallikninger Eulers metode,Eulers midtpunktmeto
Forsøk 1; ekte midtpunktmetode*
Vi midler yn og yn+1 i utregning av endringsratey ′(xn + 1
2h) ≈ f (xn + 12h, 1
2 (yn + yn+1))
Dervedyn+1 − yn
h= f (xn +
1
2h,
1
2(yn + yn+1)).
Utregningssekvens
initialbet. ⇒ y0 er gitt
y1 − y0 = hf (12h, 1
2(y0 + y1)) ⇒ Likning løses for y1
y2 − y1 = hf (3h2 , 1
2(y1 + y2)) ⇒ Likning løses for y2
...
Likninger for y1, y2, ... løses lett bare dersom f er enkel,feks. lineærGenerelt ma likningene løses numerisk; tungvint!
Forelesning uke 42, 2007 Numerisk løsning av differensiallikninger Eulers metode,Eulers midtpunktmeto
Forsøk 2: Eulers midtpunktmetode ( K. 10.8.3)
Prosedyre for a regne ut yn+1 fra yn
1 Bruker Eulers metode 12h fram:
yn = yn + 12hf (xn, yn)
Vi kan si: yn ≈ y(xn + 12h)
2 Kvasi-midtpunktformel:yn+1 = yn + hf (xn + 1
2h, yn)
Poeng: Vi løser ingen likninger. yn, deretter yn+1 beregnes vedeksplisitte uttrykk.
Bedre enn Eulers metode. Brukes ofte i forbinelse med partielledifferensiallikninger (den ukjente er en funksjon av flere variable),men sjelden for ordinære differensiallikninger.
Partielle likninger er ikke med i MAT-INF1100
Forelesning uke 42, 2007 Numerisk løsning av differensiallikninger Eulers metode,Eulers midtpunktmeto
Eulers midpunktmetode; grafisk framstilling
x
yy(x)
y0
y1
y0
h
x0 x1
Eksempel: første steg. Eulers metode 12h fram til y0
Stigning i løsningskurve gjennom (12h, y0) brukes for a finne y1.
(Rødt + tilsvarer y1 funnet ved Eulers metode)
Forelesning uke 42, 2007 Numerisk løsning av differensiallikninger Eulers metode,Eulers midtpunktmeto
Eulers metode for demonstrasjonseksempel ( K. 10.8.2)
Ser igjen pa f (x , y) = ay dvs. likning og løsning
y ′ = ay , y(0) = y0 ⇒ y0eax .
Eulers metode gir yn+1 = yn + hf (xn, yn) = (1 + ah)yn.
yn bestemmes altsa fra differenslikningen
yn+1 = (1 + ah)yn.
Klassifisering: Første orden, lineær, homogen; Løses lett i formel
Generelt for endelig differens metoder:
numerisk løsning av differensiallikninger innebærer a simuleredifferenslikninger
Forelesning uke 42, 2007 Numerisk løsning av differensiallikninger Eulers metode,Eulers midtpunktmeto
Løsning av “differenslikning fra differensiallikning”
Løsning av yn+1 = (1 + ah)yn, y0 gitt, er
yn = (1 + ah)ny0 =(
1 +axn
n
)n
y0.
Vi regner fram til en fast x = xn = nh med stadig større n ogmindre h. Far vi rett svar nar n → ∞ ?
limn→∞
yn = limn→∞
(
1 +ax
n
)n
y0 = y0eax
Grenseverdi samsvarer med formelløsning innsatt x = x .Nar h → 0 nærmer numerisk løsning seg den eksakte: konvergent,likevel unøyaktig selv for sma h
Forelesning uke 42, 2007 Numerisk løsning av differensiallikninger Eulers metode,Eulers midtpunktmeto
Eulers metode med forskjellige h
x
yy(x)
0 1 2 3
y ′ = 0.6y , y(0) = 1 simulert for x ∈ [0, 3] med 2, 4 og 20 punkter.
Forelesning uke 42, 2007 Numerisk løsning av differensiallikninger Eulers metode,Eulers midtpunktmeto
Sammenlikning av Eulermetoder*
Eulers metode, omskriving av resultat
yn = (1 + ah)ny0 = KnEy0, der KE = 1 + ah
Eulers midtpunktmetode
yn = yn + 12hayn
yn+1 = yn + ahyn = yn + ah(yn + 12ahyn) = Kmyn
der Km = 1 + ah + 12(ah)2. Da er yn = Kn
my0
Eksakt løsning
y(xn) = y0eaxn = y0e
anh = y0(eah)n = Kny0
der K = eah
Forelesning uke 42, 2007 Numerisk løsning av differensiallikninger Eulers metode,Eulers midtpunktmeto
...
Alle løsninger har formen y(xn) = Kn∗y0.
Forskjeller i K∗ sier noe om hvor ulike løsningene er.
Taylorrekkeutvikling av K = eah
et = 1 + t + 12t2 + 1
6t3 + ... innsatt t = ah
Euler KE = 1 + ah
E. midtp. Km = 1 + ah + 12(ah)2
Eksakt K = 1 + ah + 12(ah)2 + 1
6(ah)3 + ...
Forelesning uke 42, 2007 Numerisk løsning av differensiallikninger Eulers metode,Eulers midtpunktmeto
Runge-Kuttas metode (orden 4); ( K. 10.8.4)
y ′ = f (x , y), y(0) = y0
4 stigningsrater beregnes og midles.Metode utledes ikke;men er lett a kode
Skritt fra xn til xn+1
1 m1 = f (xn, yn) (som i Euler)
2 m2 = f (xn + 12h, yn + 1
2hm1) (Eulers midt.)
3 m3 = f (xn + 12h, yn + 1
2hm2)
4 m4 = f (xn + h, yn + hm3)
5 Utregning av ny y :yn+1 = yn + h
6 (m1 + 2m2 + 2m3 + m4)
Andre indeks pa m’ene er sløyfet ( m avhenger av n ogsa).Noen steg, men enkel a kode!Runge-Kutta metoder er mye brukt
Forelesning uke 42, 2007 Numerisk løsning av differensiallikninger Eulers metode,Eulers midtpunktmeto
Taylorrekkeutvikling*
Eksempel y ′ = exy
Derivasjonery ′′ = (exy )′ = exy (xy)′ = exy (y + xy ′)y ′′′ = (y ′′)′ = exy (y + xy ′)2 + exy (2y ′ + xy ′′)...Har vi y ved en x kan deriverte av økende orden regnes ut etter tur
Taylorrekkeutvikling gir
yn+1 = y(xn + h) = y(xn) + hy ′(xn) +1
2h2y ′′(xn) + ...
Forelesning uke 42, 2007 Numerisk løsning av differensiallikninger Eulers metode,Eulers midtpunktmeto
NYTT TEMA
Differensiallikninger av høyere orden og sett
av likninger
Forelesning uke 42, 2007 Numerisk løsning av differensiallikninger Eulers metode,Eulers midtpunktmeto
Koblede differensiallikninger med flere ukjente
To likninger av første orden
y ′ = F (x , y , z),
z ′ = G (x , y , z),
der ukjente er y(x) og z(x).
M likninger av første orden
dy (1)
dx= F (1)(x , y (1)..., y (M)),
dy (2)
dx= F (2)(x , y (1)..., y (M)),
...dy (M)
dx= F (M)(x , y (1)..., y (M)),
der ukjente er y (1)(x)...y (M)(x).
Forelesning uke 42, 2007 Numerisk løsning av differensiallikninger Eulers metode,Eulers midtpunktmeto
Omskrivning; to førsteordens ⇒ 1 andreordens*
Eksempel; lineært sett, konst. koeff.
y ′ = ay + bz ,
z ′ = cy + dz ,
Den øverste gir (b 6= 0) z = (y ′ − ay)/b.Innsatt i den nederste
z ′ = cy + dz(
y ′ − ay
b
)
′
= cy + d
(
y ′ − ay
b
)
y ′′ − ay ′ = (bc − ad)y + dy ′
y ′′ = (a + d)y ′ + (bc − ad)y
Her er vi mest opptatt av det omvendte.
Forelesning uke 42, 2007 Numerisk løsning av differensiallikninger Eulers metode,Eulers midtpunktmeto
Differensiallikning av andre orden
y ′′ = F (x , y , y ′), y(0) = b0, y ′(0) = b1 (1)
Vi har formler for løsning nar likningen er lineær med konstantekoeffisienter, dvs.
F = f (x) − py ′ − qy ,
der p og q er konstante.Kommer i Kalkulus, kap. 10.5,6
Ellers: Numerisk løsning (stort sett)
Forelesning uke 42, 2007 Numerisk løsning av differensiallikninger Eulers metode,Eulers midtpunktmeto
Omskrivning til 2 likninger av orden 1
Definerer z = y ′ da er z ′ = y ′′ og
y ′′ = F (x , y , y ′) ⇒ z ′ = F (x , y , z)
Vi far da 2 førsteordenslikninger
y ′ = zz ′ = F (x , y , z)
med y(0) = b0, z(0) = y ′(0) = b1.
Generelt kan en likning av orden n gjøres om til n likninger avorden 1
Dette er standard framgangsmate ved numerisk løsning medinitialverdier; bade Eulermetoder og Runge-Kutta kan lettgeneraliseres til sett av førsteordenslikninger
Forelesning uke 42, 2007 Numerisk løsning av differensiallikninger Eulers metode,Eulers midtpunktmeto
NYTT TEMA
Numerisk løsning av sett av likninger
Kompendium, kap. 8
Forelesning uke 42, 2007 Numerisk løsning av differensiallikninger Eulers metode,Eulers midtpunktmeto
Eulers metode
Definerer som før xn = nh og yn ≈ y(xn), zn ≈ z(xn)Regner ut y1, z1, deretter y2, z2 osv. som før.Initialbetingelser gir z0, y0.
Rekursjon fra n − 1 til n:
yn − yn−1
h= zn−1
zn − zn−1
h= F ((n − 1)h, yn−1, zn−1)
Eksplisitt skrivemate
yn = yn−1 + hzn−1
zn = zn−1 + hF ((n − 1)h, yn−1, zn−1)
Forelesning uke 42, 2007 Numerisk løsning av differensiallikninger Eulers metode,Eulers midtpunktmeto
Kompendium 8.1.2I kompendiet er metoden skrevet med yn og y ′
n(= zn) som ukjente.
Umiddelbart
yn = yn−1 + hy ′
n−1
Likning for ny y ′ utledes med Taylorpolynom T1y′
y ′
n = y ′
n−1 + hy ′′
n−1 = y ′
n−1 + F ((n − 1)h, yn−1, y′
n−1)
Resultatet er som pa forrige lysark med zn → y ′
n.
Forelesning uke 42, 2007 Numerisk løsning av differensiallikninger Eulers metode,Eulers midtpunktmeto
Demonstrasjonsproblem med kjent løsning
y ′′ + y = 0, y(0) = 1, y ′(0) = 0
Løsning y(x) = cos(x)Vi ser at y ′′(x) = (cos x)′′ = (− sin x)′ = − cos x = −y(x)Generell metode for slike likninger kommer senere ( K. kap. 10.5)
Løsningen er en ren periodisk svingning og kan i fysikken beskrivefeks. pendelbevegelse
Omskrivning til sett av likninger
y ′ = zz ′ = −y
med y(0) = 1, z(0) = 0.
Forelesning uke 42, 2007 Numerisk løsning av differensiallikninger Eulers metode,Eulers midtpunktmeto
Eulers metode
Eksakt h = 0.6h = 0.3 h = 0.1
x
y
Forelesning uke 42, 2007 Numerisk løsning av differensiallikninger Eulers metode,Eulers midtpunktmeto
Eulers metode, større x
Eksakt h = 0.1
x
y
Eksakt løsning periodisk; numerisk løsning vokser ⇒ instabilitet
Forelesning uke 42, 2007 Numerisk løsning av differensiallikninger Eulers metode,Eulers midtpunktmeto
Observasjoner
Eulers metode brukes lite i praksis, bla.a. fordi
Eulers metode er unøyaktig; selv liten h gir stor feil.Det er fordi vi bruker en ensidig differens for den deriverte.
En svingende løsning, som den i eksemplet, behandles sværtdarlig med Eulers metode: Den er instabil – feilen vokser overalle grenser.
Vi kunne ha vist at Eulers metode er instabil i eksemplet vart.
Forelesning uke 42, 2007 Numerisk løsning av differensiallikninger Eulers metode,Eulers midtpunktmeto
Eulers midtpunktmetode
Rekursjon fra n − 1 til n i to steg.
1: mellomsteg; Eulers metode 12h fram (sløyfer indeks pa y og z)
y = yn−1 + 12hzn−1
z = zn−1 + 12hF ((n − 1)h, yn−1, zn−1)
2: Endelig steg
yn = yn−1 + hz
zn = zn−1 + hF(
(n − 12)h, y , z
)
En “kvasi-midtpunktformel” om x = (n − 12 )h
Akkurat som for en førsteordenslikning
Forelesning uke 42, 2007 Numerisk løsning av differensiallikninger Eulers metode,Eulers midtpunktmeto
Sammenlikning for h = 0.1
Eksakt Euler
Midtpunkt Euler
x
y
Midpunkt Euler og Eksakt kan ikke skilles i diagram
Forelesning uke 42, 2007 Numerisk løsning av differensiallikninger Eulers metode,Eulers midtpunktmeto
Midtpunkt Euler, følsomhet for h
Eksakt h = 0.3h = 0.1
x
y
Midtpunkt Euler er ogsa “litt” instabilUtprøving av ulike h er viktig
Forelesning uke 42, 2007 Numerisk løsning av differensiallikninger Eulers metode,Eulers midtpunktmeto
Midtpunkt Euler, Runge-Kutta, h = 0.3
Eksakt Midtp.-EulerRunge-Kutta(4)
x
y
Runge-Kutta mye bedre enn midtpunkt Euler
Forelesning uke 42, 2007 Numerisk løsning av differensiallikninger Eulers metode,Eulers midtpunktmeto
Instabilitet og Eulers metode*
yn = yn−1 + hzn−1
zn = zn−1 − hyn−1
For n > 0 kan vi elimenere z ’ene i den nederste vha. den øverste
yn+1 − 2yn + yn−1
h2= −yn−1
Kommentar: differens for y ′′ insatt i y ′′ = −y ; vi er tilbake til endirekte diskretisering av andreordenslikningen!
Omskrivning:yn+1 − 2yn + (1 + h2)yn−1 = 0
Andre ordens differenslikning
Forelesning uke 42, 2007 Numerisk løsning av differensiallikninger Eulers metode,Eulers midtpunktmeto
Løsning av differenslikning*
Eulers metode betyr at vi løser (nummerer om)
yn+2 − 2yn+1 + (1 + h2)yn = 0, n ≥ 0
Men denne kan vi løse i formel! Setter inn yn = rn
r2 − 2r + 1 + h2 = 0
dvsr1 = 1 + ih, r2 = 1 − ih
Forelesning uke 42, 2007 Numerisk løsning av differensiallikninger Eulers metode,Eulers midtpunktmeto
...*
Dette er tilfelle 3 i kap. 4 i Kalkulus.Setning (4.1.14)
yn = ρn (E cos(nθ) + F sin(nθ))
der θ er arumentet til r1 og
ρ = |r1| =√
1 + h2 > 1
Løsning vokser over alle grenser nar n → ∞
Forelesning uke 42, 2007 Numerisk løsning av differensiallikninger Eulers metode,Eulers midtpunktmeto