35
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 m

Numerisk løsning av differensiallikninger Eulers metode, Eulers

  • Upload
    dodan

  • View
    246

  • Download
    4

Embed Size (px)

Citation preview

Page 1: Numerisk løsning av differensiallikninger Eulers metode, Eulers

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

Page 2: Numerisk løsning av differensiallikninger Eulers metode, Eulers

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

Page 3: Numerisk løsning av differensiallikninger Eulers metode, Eulers

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

Page 4: Numerisk løsning av differensiallikninger Eulers metode, Eulers

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

Page 5: Numerisk løsning av differensiallikninger Eulers metode, Eulers

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

Page 6: Numerisk løsning av differensiallikninger Eulers metode, Eulers

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

Page 7: Numerisk løsning av differensiallikninger Eulers metode, Eulers

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

Page 8: Numerisk løsning av differensiallikninger Eulers metode, Eulers

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

Page 9: Numerisk løsning av differensiallikninger Eulers metode, Eulers

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

Page 10: Numerisk løsning av differensiallikninger Eulers metode, Eulers

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

Page 11: Numerisk løsning av differensiallikninger Eulers metode, Eulers

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

Page 12: Numerisk løsning av differensiallikninger Eulers metode, Eulers

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

Page 13: Numerisk løsning av differensiallikninger Eulers metode, Eulers

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

Page 14: Numerisk løsning av differensiallikninger Eulers metode, Eulers

...

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

Page 15: Numerisk løsning av differensiallikninger Eulers metode, Eulers

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

Page 16: Numerisk løsning av differensiallikninger Eulers metode, Eulers

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

Page 17: Numerisk løsning av differensiallikninger Eulers metode, Eulers

NYTT TEMA

Differensiallikninger av høyere orden og sett

av likninger

Forelesning uke 42, 2007 Numerisk løsning av differensiallikninger Eulers metode,Eulers midtpunktmeto

Page 18: Numerisk løsning av differensiallikninger Eulers metode, Eulers

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

Page 19: Numerisk løsning av differensiallikninger Eulers metode, Eulers

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

Page 20: Numerisk løsning av differensiallikninger Eulers metode, Eulers

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

Page 21: Numerisk løsning av differensiallikninger Eulers metode, Eulers

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

Page 22: Numerisk løsning av differensiallikninger Eulers metode, Eulers

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

Page 23: Numerisk løsning av differensiallikninger Eulers metode, Eulers

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

Page 24: Numerisk løsning av differensiallikninger Eulers metode, Eulers

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

Page 25: Numerisk løsning av differensiallikninger Eulers metode, Eulers

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

Page 26: Numerisk løsning av differensiallikninger Eulers metode, Eulers

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

Page 27: Numerisk løsning av differensiallikninger Eulers metode, Eulers

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

Page 28: Numerisk løsning av differensiallikninger Eulers metode, Eulers

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

Page 29: Numerisk løsning av differensiallikninger Eulers metode, Eulers

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

Page 30: Numerisk løsning av differensiallikninger Eulers metode, Eulers

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

Page 31: Numerisk løsning av differensiallikninger Eulers metode, Eulers

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

Page 32: Numerisk løsning av differensiallikninger Eulers metode, Eulers

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

Page 33: Numerisk løsning av differensiallikninger Eulers metode, Eulers

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

Page 34: Numerisk løsning av differensiallikninger Eulers metode, Eulers

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

Page 35: Numerisk løsning av differensiallikninger Eulers metode, Eulers

...*

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