Numerisk løsning av differensiallikninger Eulers metode, Eulers … · Numerisk løsning av...

Preview:

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

Recommended