Tilbake
7.1

7.1 Euler, Heun og Runge–Kutta — ett skritt for hånd

De tre grunnleggende ODE-løserne og det som testes oftest: å ta ett skritt for hånd med riktig oppsett av stegene.

60 min
12 oppgaver
EulerHeunRunge–Kuttaett skritt for hånd
Din fremgang i kapitlet
0 / 12 oppgaver
Forkunnskaper: kap. 6.4 — bakover-Euler krever at du løser en likning for den ukjente yn+1y_{n+1}, og er den ikke-lineær, er Newtons metode standardverktøyet.

Du trenger dessuten å kunne løse en enkel lineær førsteordens differensiallikning eksakt, siden vi hele veien sammenlikner med fasiten. For y+ay=b(t)y'+ay=b(t) er det integrerende faktor eate^{at} — men de eksakte løsningene er oppgitt der de trengs, så du kan lese kapitlet uten den ferdigheten.

Kapitlet er forutsetning for hele resten av Del 7: kap. 7.2 leser metodene ut av en Butcher-tabell, kap. 7.3 bruker to metoder samtidig, og kap. 7.4 undersøker når de er stabile.

Når du kjenner farten, men ikke veien

En differensiallikning y=f(t,y)y'=f(t,y) forteller deg hvor bratt kurven er i ethvert punkt. Den forteller deg ikke hvor kurven ligger. Å løse likningen er å gå fra bratthet til bane.

For noen likninger går det an å gjøre eksakt. For de aller fleste går det ikke.

Den numeriske ideen er så enkel at den nesten virker for enkel: stå i et punkt, spør likningen hvor bratt det er, gå et lite skritt i den retningen, og spør på nytt.

yn+1=yn+h(et stigningstall).y_{n+1}=y_n+h\cdot(\text{et stigningstall}).

Hverdagsbildet: du går i tett tåke med et kompass som bare virker der du står. Du leser av retningen, går ti meter, leser av på nytt. Går du korte skritt, følger du stien bra. Går du lange, kutter du svingene.

Hele forskjellen mellom metodene ligger i hvilket stigningstall du bruker.

- Euler bruker brattheten der du står. Enkelt, og det kutter svingene.
- Heun går et prøveskritt fram, ser hvor bratt det er der, og bruker gjennomsnittet. Dobbelt så mye arbeid, mye bedre svar.
- RK4 gjør fire slike prøver med ulik vekt. Fire ganger arbeidet, og en nøyaktighet som er i en helt annen klasse.
- Bakover-Euler bruker brattheten der du skal ende opp — noe du ikke vet ennå, og som derfor krever at du løser en likning. Prisen er høy; gevinsten kommer i kap. 7.4.

Vi regner alle fire på det samme problemet, slik at sammenlikningen blir ærlig.

Flashcard- og repetisjonsstoff — hopp trygt over ved førstegangslesing. Definisjonsboksene er samtidig kortene i flashcard-bunken. Tidsanslaget på 60 minutter gjelder kjernestoffet.

Løkke 1 — Euler og oppsettet (~14 min)

Initialverdiproblemet
Det problemet alle metodene i Del 7 løser:

y=f(t,y),y(t0)=y0.y'=f(t,y),\qquad y\left(t_0\right)=y_0.

Differensiallikningen gir stigningstallet i ethvert punkt (t,y)(t,y); initialbetingelsen sier hvor kurven starter. Til sammen bestemmer de løsningen entydig (under milde krav på ff).

Merk at ff kan avhenge av både tt og yy. Det er nettopp yy-avhengigheten som gjør problemet interessant: stigningstallet endrer seg mens du beveger deg, og du kan ikke bare integrere.

Gitteret og steglengden hh
Punktene der du regner ut en tilnærming:

tn=t0+nh,n=0,1,2,t_n=t_0+nh,\qquad n=0,1,2,\dots

Steglengden hh er avstanden mellom to nabopunkter. Tallet yny_n er tilnærmingen til den eksakte verdien y(tn)y\left(t_n\right) — og de to er ikke det samme. Skriv gjerne yny(tn)y_n\approx y\left(t_n\right) første gang.

Notasjonen: vi bruker yny_n for den beregnede verdien og y(tn)y\left(t_n\right) for den eksakte. Parentesen er hele forskjellen, og den er verdt å være nøye med i en besvarelse.

Merk symbolkollisjonen som kommer: i Del 8 blir hh romsteget, og tidssteget skrives Δt\Delta t (det utdelte formelarket kaller tidssteget kk). I hele Del 7 er hh steget i tid.

Ett-skritts-metode
En metode som regner yn+1y_{n+1} bare ut fra yny_n — ikke fra yn1y_{n-1} eller tidligere verdier.

yn+1=yn+hΦ(tn,yn,h).y_{n+1}=y_n+h\,\Phi\left(t_n,y_n,h\right).

Funksjonen Φ\Phi er metodens inkrementfunksjon, altså det stigningstallet metoden velger å bruke. Alle metodene i dette kapitlet er ett-skritts-metoder, og alle Runge–Kutta-metoder er det.

Fordelen er at du kan starte med én gang og bytte hh underveis (det utnyttes i kap. 7.3). Flerskritts-metoder, som bruker flere gamle verdier, finnes, men er ikke pensum her.

Eksplisitt Euler
Den enkleste metoden av alle:

yn+1=yn+hf(tn,yn).y_{n+1}=y_n+h\,f\left(t_n,y_n\right).

Geometrisk: følg tangenten til løsningskurven gjennom (tn,yn)\left(t_n,y_n\right) et stykke hh framover.

«Eksplisitt» betyr at høyresiden bare inneholder kjente størrelser — du regner ut yn+1y_{n+1} direkte, uten å løse noe.

Kostnad: én ff-evaluering per skritt.
Orden: 1. Halverer du hh, halveres feilen.

Formelen står på det utdelte formelarket — tren oppslaget.

Lokal avkuttingsfeil
Feilen ett enkelt skritt gjør, når du starter fra den eksakte verdien:

τn+1=y(tn+1)[y(tn)+hΦ(tn,y(tn),h)].\tau_{n+1}=y\left(t_{n+1}\right)-\left[y\left(t_n\right)+h\,\Phi\left(t_n,y\left(t_n\right),h\right)\right].

For Euler finner du den ved Taylor-utvikling:

y(tn+h)=y(tn)+hy(tn)+h22y(η),y\left(t_n+h\right)=y\left(t_n\right)+h\,y'\left(t_n\right)+\frac{h^{2}}{2}y''(\eta),

og siden Euler bare tar med de to første leddene, er

τn+1=h22y(η)=O(h2).\tau_{n+1}=\frac{h^{2}}{2}y''(\eta)=O\left(h^{2}\right).

En metode har orden pp når den lokale avkuttingsfeilen er O(hp+1)O\left(h^{p+1}\right). Euler har altså orden 1.

Merk at det er ett skritt. Den globale feilen — etter mange skritt — er én potens dårligere, og det forklares i neste boks.

Global feil og konvergensorden
Feilen etter at du har gått hele veien fra t0t_0 til et fast sluttpunkt TT:

eN=y(T)yN,N=Tt0h.e_N=\left|y\left(T\right)-y_N\right|,\qquad N=\frac{T-t_0}{h}.

Hvorfor den er én potens dårligere enn den lokale. Halverer du hh, blir hvert enkelt skritt bedre med faktoren 2p+12^{p+1} — men du må ta dobbelt så mange skritt. De to effektene gir til sammen

eN=O(hp).e_N=O\left(h^{p}\right).

Tabellen du trenger:

MetodeLokal feilGlobal orden ppHalvering av hh gir
EulerO(h2)O\left(h^{2}\right)1feil /2/2
HeunO(h3)O\left(h^{3}\right)2feil /4/4
RK4O(h5)O\left(h^{5}\right)4feil /16/16
Bakover-EulerO(h2)O\left(h^{2}\right)1feil /2/2

Ordenen må kunnes — den står ikke på det utdelte formelarket, og den er det du bruker til å svare på «hvor mye bedre blir svaret hvis jeg halverer hh?».
✏️Ett Euler-skritt, og hva som skjer når $h$ halveres
Gitt y=t2yy'=t-2y med y(0)=1y(0)=1. Den eksakte løsningen er

y(t)=54e2t+t214,y(t)=\tfrac54 e^{-2t}+\tfrac{t}{2}-\tfrac14,

som gir y(0,2)0,6879001y(0{,}2)\approx 0{,}6879001.

a) Ta ett Euler-skritt med h=0,2h=0{,}2.
b) Ta to Euler-skritt med h=0,1h=0{,}1.
c) Ta fire Euler-skritt med h=0,05h=0{,}05, og kommenter feilene.

a) Ett skritt med h=0,2h=0{,}2.

f(0,1)=021=2.f(0,1)=0-2\cdot 1=-2.

y1=y0+hf(t0,y0)=1+0,2(2)=10,4=0,6.y_1=y_0+h\,f\left(t_0,y_0\right)=1+0{,}2\cdot(-2)=1-0{,}4=0{,}6.

Feil: 0,60,6879001=0,0879001\left|0{,}6-0{,}6879001\right|=0{,}0879001.

b) To skritt med h=0,1h=0{,}1.

f(0,1)=2  y1=1+0,1(2)=0,8,f(0,1)=-2\ \Longrightarrow\ y_1=1+0{,}1\cdot(-2)=0{,}8,
f(0,1; 0,8)=0,11,6=1,5  y2=0,8+0,1(1,5)=0,65.f(0{,}1;\ 0{,}8)=0{,}1-1{,}6=-1{,}5\ \Longrightarrow\ y_2=0{,}8+0{,}1\cdot(-1{,}5)=0{,}65.

Feil: 0,650,6879001=0,0379001\left|0{,}65-0{,}6879001\right|=0{,}0379001.

c) Fire skritt med h=0,05h=0{,}05.

f(0; 1)=2  y1=10,1=0,9,f(0;\ 1)=-2\ \Longrightarrow\ y_1=1-0{,}1=0{,}9,
f(0,05; 0,9)=0,051,8=1,75  y2=0,90,0875=0,8125,f(0{,}05;\ 0{,}9)=0{,}05-1{,}8=-1{,}75\ \Longrightarrow\ y_2=0{,}9-0{,}0875=0{,}8125,
f(0,1; 0,8125)=0,11,625=1,525  y3=0,81250,07625=0,73625,f(0{,}1;\ 0{,}8125)=0{,}1-1{,}625=-1{,}525\ \Longrightarrow\ y_3=0{,}8125-0{,}07625=0{,}73625,
f(0,15; 0,73625)=0,151,4725=1,3225  y4=0,736250,0661250=0,670125.f(0{,}15;\ 0{,}73625)=0{,}15-1{,}4725=-1{,}3225\ \Longrightarrow\ y_4=0{,}73625-0{,}0661250=0{,}670125.

Feil: 0,6701250,6879001=0,0177751\left|0{,}670125-0{,}6879001\right|=0{,}0177751.

Samlet:

hhSkrittyy ved t=0,2t=0{,}2FeilForhold
0,20{,}210,60{,}68,791028{,}79\cdot 10^{-2}
0,10{,}120,650{,}653,791023{,}79\cdot 10^{-2}2,322{,}32
0,050{,}0540,6701250{,}6701251,781021{,}78\cdot 10^{-2}2,132{,}13

Feilen halveres omtrent hver gang hh halveres. Forholdene 2,322{,}32 og 2,132{,}13 nærmer seg 2, som er nøyaktig det orden 1 betyr.
To ting å legge merke til.
For det første går forholdet mot 2 nedenfra, ikke fra 2 med en gang. Ordensresultatet er asymptotisk: det gjelder når hh er liten nok til at det ledende feilleddet dominerer.
For det andre er alle tilnærmingene for små. Løsningen er konveks her, og Euler-tangentene ligger under kurven. Slike fortegnsargumenter er gratis kontroller — og de er ofte nok til å avsløre en regnefeil.

Tidsbruk på eksamen: ett Euler-skritt er ett minutt. Det er blant de billigste poengene på hele settet.

📝Oppgave 1

(Innstegsoppgave — ren innsetting.) Gitt y=t+yy'=t+y med y(0)=1y(0)=1 og h=0,1h=0{,}1.

a) Regn ut f(t0,y0)f\left(t_0,y_0\right).
b) Ta ett Euler-skritt.
c) Ta ett skritt til.

📝Oppgave 2
M

Gitt y=yt2y'=y-t^{2} med y(0)=1y(0)=1 og h=0,2h=0{,}2.

a) Ta to Euler-skritt.
b) Den eksakte løsningen er y(t)=t2+2t+2ety(t)=t^{2}+2t+2-e^{t}. Regn ut y(0,4)y(0{,}4) og finn feilen.

Løkke 2 — Heun og RK4 (~18 min)

Eulers svakhet er at den bruker brattheten i startpunktet for hele skrittet. Både Heun og RK4 gjør noe med akkurat det.

Forbedret Euler (Heuns metode)
Ta et prøveskritt med Euler, se hvor bratt det er der, og bruk gjennomsnittet av de to stigningstallene:

k1=f(tn,yn),k_1=f\left(t_n,y_n\right),
k2=f(tn+h, yn+hk1),k_2=f\left(t_n+h,\ y_n+h k_1\right),
yn+1=yn+h2(k1+k2).y_{n+1}=y_n+\frac{h}{2}\left(k_1+k_2\right).

Merk argumentet i k2k_2: det er yn+hk1y_n+hk_1, altså Euler-prediksjonen — ikke yny_n. Å bruke yny_n der er den vanligste feilen i hele sjangeren, og den gjør metoden om til Euler igjen.

Kostnad: to ff-evalueringer per skritt.
Orden: 2. Halverer du hh, blir feilen fire ganger mindre.

Formelen står på det utdelte formelarket — tren oppslaget på argumentene, ikke på vektene.

Prediktor–korrektor-tolkningen

Heun kan leses i to trinn:

1. Prediktor: y~=yn+hk1\tilde y=y_n+h k_1 — et Euler-gjett på hvor du havner.
2. Korrektor: bruk stigningstallet der til å korrigere: yn+1=yn+h2(k1+k2)\displaystyle y_{n+1}=y_n+\frac{h}{2}\left(k_1+k_2\right).

Hvorfor gjennomsnittet er bedre. Euler bruker stigningstallet i venstre endepunkt over hele intervallet — det er venstre-rektangel-regelen for integralet tntn+1fdt\int_{t_n}^{t_{n+1}}f\,dt. Heun bruker gjennomsnittet av begge endepunkter — det er trapesregelen fra kap. 6.2.

Det er ikke en analogi, det er samme regnestykke. Og det forklarer ordenene: trapes har feil O(h2)O(h^{2}) per intervall, venstre rektangel bare O(h)O(h).

Klassisk Runge–Kutta (RK4)
Fire stigningstall, med to prøvepunkter på midten:

k1=f(tn, yn),k_1=f\left(t_n,\ y_n\right),
k2=f(tn+h2, yn+h2k1),k_2=f\left(t_n+\tfrac{h}{2},\ y_n+\tfrac{h}{2}k_1\right),
k3=f(tn+h2, yn+h2k2),k_3=f\left(t_n+\tfrac{h}{2},\ y_n+\tfrac{h}{2}k_2\right),
k4=f(tn+h, yn+hk3),k_4=f\left(t_n+h,\ y_n+h k_3\right),

yn+1=yn+h6(k1+2k2+2k3+k4).y_{n+1}=y_n+\frac{h}{6}\left(k_1+2k_2+2k_3+k_4\right).

Merk kjedingen: k2k_2 bruker k1k_1, k3k_3 bruker k2k_2 (ikke k1k_1), og k4k_4 bruker k3k_3. Hvert stigningstall bygger på det forrige.

Kostnad: fire ff-evalueringer per skritt.
Orden: 4. Halverer du hh, blir feilen seksten ganger mindre.

Formelen står på det utdelte formelarket — tren oppslaget på argumentene: hvilket kk hører til hvilket punkt.

Vektene i RK4
16(k1+2k2+2k3+k4).\frac16\left(k_1+2k_2+2k_3+k_4\right).

Vektene er 16,13,13,16\tfrac16,\tfrac13,\tfrac13,\tfrac16, og de summerer til 1 — som de må, for at metoden skal treffe eksakt når ff er konstant.

Gjenkjenner du mønsteret? Det er Simpsons regel fra kap. 6.2, med vektene 16,46,16\tfrac16,\tfrac46,\tfrac16 over endepunktene og midtpunktet — bare med midtpunktsvekten delt på to prøver (k2k_2 og k3k_3).

Kontroll før du regner videre: summen av vektene skal være 1. Har du skrevet av 16(k1+2k2+2k3+k4)\tfrac16(k_1+2k_2+2k_3+k_4) feil, avslører den kontrollen det umiddelbart.

Kostnad: ff-evalueringer per skritt
MetodeEvalueringerOrdenNøyaktighet per evaluering
Euler11lav
Heun22middels
RK444høy

Den riktige sammenlikningen er ikke per skritt, men per evaluering. Ett RK4-skritt med hh koster like mye som fire Euler-skritt med h/4h/4. Regner du det ut, vinner RK4 dramatisk, fordi ordenene er så ulike.
Praktisk regel: for glatte problemer og moderate nøyaktighetskrav er RK4 nesten alltid billigst. For stive problemer snur bildet helt — se løkke 3 og kap. 7.4.
✏️Euler, Heun og RK4 på samme skritt

Gitt y=t2yy'=t-2y med y(0)=1y(0)=1 og h=0,2h=0{,}2. Eksakt: y(0,2)0,6879001y(0{,}2)\approx 0{,}6879001.

Ta ett skritt med hver av Euler, Heun og RK4, og sammenlikn.

Euler (fra eksempel 1):

k=f(0; 1)=02=2,y1=1+0,2(2)=0,6.k=f(0;\ 1)=0-2=-2,\qquad y_1=1+0{,}2(-2)=0{,}6.

Heun. To stigningstall:

k1=f(0; 1)=021=2,k_1=f(0;\ 1)=0-2\cdot 1=-2,
k2=f(0+0,2, 1+0,2(2))=f(0,2; 0,6)=0,220,6=0,21,2=1.k_2=f\left(0+0{,}2,\ 1+0{,}2\cdot(-2)\right)=f(0{,}2;\ 0{,}6)=0{,}2-2\cdot 0{,}6=0{,}2-1{,}2=-1.

y1=1+0,22(2+(1))=1+0,1(3)=10,3=0,7.y_1=1+\frac{0{,}2}{2}\left(-2+(-1)\right)=1+0{,}1\cdot(-3)=1-0{,}3=0{,}7.

RK4. Fire stigningstall — merk hvilket punkt hvert er regnet i:

k1=f(0; 1)=2,k_1=f(0;\ 1)=-2,
k2=f(0,1; 1+0,1(2))=f(0,1; 0,8)=0,11,6=1,5,k_2=f\left(0{,}1;\ 1+0{,}1\cdot(-2)\right)=f(0{,}1;\ 0{,}8)=0{,}1-1{,}6=-1{,}5,
k3=f(0,1; 1+0,1(1,5))=f(0,1; 0,85)=0,11,7=1,6,k_3=f\left(0{,}1;\ 1+0{,}1\cdot(-1{,}5)\right)=f(0{,}1;\ 0{,}85)=0{,}1-1{,}7=-1{,}6,
k4=f(0,2; 1+0,2(1,6))=f(0,2; 0,68)=0,21,36=1,16.k_4=f\left(0{,}2;\ 1+0{,}2\cdot(-1{,}6)\right)=f(0{,}2;\ 0{,}68)=0{,}2-1{,}36=-1{,}16.

y1=1+0,26(2+2(1,5)+2(1,6)+(1,16)).y_1=1+\frac{0{,}2}{6}\left(-2+2(-1{,}5)+2(-1{,}6)+(-1{,}16)\right).

Summen i parentesen: 233,21,16=9,36-2-3-3{,}2-1{,}16=-9{,}36.

y1=1+0,26(9,36)=10,312=0,688.y_1=1+\frac{0{,}2}{6}\cdot(-9{,}36)=1-0{,}312=0{,}688.

Sammenlikning.

MetodeEvalueringery1y_1Feil
Euler10,60{,}68,791028{,}79\cdot 10^{-2}
Heun20,70{,}71,211021{,}21\cdot 10^{-2}
RK440,6880{,}6889,991059{,}99\cdot 10^{-5}
Eksakt0,68790010{,}6879001

Fire ganger arbeidet gir nesten tusen ganger mindre feil. Det er hele argumentet for RK4.
Legg merke til at Heun bommer på den andre siden av Euler. Euler ga 0,60{,}6 (for lavt), Heun ga 0,70{,}7 (for høyt). Det er vanlig, men ikke en regel — det avhenger av krumningen.
Kontroller du selv? Tre raske sjekker: (1) alle kik_i skal være i samme størrelsesorden — er ett av dem vilt avvikende, er et argument satt inn feil; (2) vektene 16(1+2+2+1)=1\displaystyle \frac16(1+2+2+1)=1 ✔; (3) svaret skal ligge mellom Euler og Heun her, siden RK4 er den mest nøyaktige.
Tidsbruk på eksamen: hele denne oppgaven er 6–8 minutter når oppstillingen sitter.
📝Oppgave 3
M

Gitt y=t+yy'=t+y med y(0)=1y(0)=1 og h=0,1h=0{,}1.

a) Ta ett Heun-skritt.
b) Ta ett RK4-skritt.
c) Den eksakte verdien er y(0,1)=2e0,11,11,1103418y(0{,}1)=2e^{0{,}1}-1{,}1\approx 1{,}1103418. Sammenlikn feilene med Eulers, som ga 1,11{,}1.

📝Oppgave 4
M

Gitt y=yt2y'=y-t^{2} med y(0)=1y(0)=1 og h=0,2h=0{,}2.

a) Ta ett Heun-skritt.
b) Ta ett RK4-skritt.
c) Eksakt er y(0,2)=0,04+0,4+2e0,21,2185598y(0{,}2)=0{,}04+0{,}4+2-e^{0{,}2}\approx 1{,}2185598. Rangér metodene.

— naturlig pausepunkt (~32 min brukt) —

Du kan de tre eksplisitte metodene. Resten av kapitlet er den implisitte varianten — som ser ubehagelig ut, men som er uunnværlig for en bestemt klasse problemer.

Løkke 3 — Bakover-Euler og stive problemer (~15 min)

Implisitt metode

En metode der den ukjente yn+1y_{n+1} står på begge sider av likhetstegnet.

Da kan du ikke bare regne ut høyresiden — du må løse en likning for yn+1y_{n+1}.

Er ff lineær i yy, er likningen lineær og løses med to linjers algebra.
Er ff ikke-lineær, må du bruke en rotsøkingsmetode — og da er Newton fra kap. 6.4 standardvalget.

Prisen er altså at hvert skritt koster en likningsløsning i stedet for en funksjonsevaluering. Gevinsten er stabilitet, som er hele temaet i kap. 7.4.

Bakover-Euler
Euler, men med stigningstallet regnet i sluttpunktet:

yn+1=yn+hf(tn+1, yn+1).y_{n+1}=y_n+h\,f\left(t_{n+1},\ y_{n+1}\right).

Sammenlikn med eksplisitt Euler: eneste forskjell er at argumentene er tn+1,yn+1t_{n+1},y_{n+1} i stedet for tn,ynt_n,y_n. Men den forskjellen gjør metoden implisitt.

Orden: 1, akkurat som eksplisitt Euler. Du kjøper altså ikke nøyaktighet — du kjøper stabilitet.

Formelen står på det utdelte formelarket — tren oppslaget. Det som må kunnes, er at du er nødt til å løse likningen, og hvordan.

Å løse for yn+1y_{n+1}
Lineært tilfelle. Er f(t,y)=a(t)y+b(t)f(t,y)=a(t)y+b(t), blir likningen

yn+1=yn+h(a(tn+1)yn+1+b(tn+1)).y_{n+1}=y_n+h\left(a\left(t_{n+1}\right)y_{n+1}+b\left(t_{n+1}\right)\right).

Samle yn+1y_{n+1} på venstre side:

yn+1(1ha(tn+1))=yn+hb(tn+1)  yn+1=yn+hb(tn+1)1ha(tn+1).y_{n+1}\left(1-h\,a\left(t_{n+1}\right)\right)=y_n+h\,b\left(t_{n+1}\right)\ \Longrightarrow\ y_{n+1}=\frac{y_n+h\,b\left(t_{n+1}\right)}{1-h\,a\left(t_{n+1}\right)}.

Ikke-lineært tilfelle. Skriv likningen som G(yn+1)=0G\left(y_{n+1}\right)=0 med

G(z)=zynhf(tn+1,z),G(z)=z-y_n-h\,f\left(t_{n+1},z\right),

og løs med Newtons metode fra kap. 6.4. Startverdi: Euler-prediksjonen yn+hf(tn,yn)y_n+hf\left(t_n,y_n\right) er nesten alltid god nok.

Merk at G(z)=1hf/yG'(z)=1-h\,\partial f/\partial y, som er nær 1 for liten hh — så Newton konvergerer raskt her.

Stive problemer
Problemer der løsningen inneholder komponenter som endrer seg på svært ulike tidsskalaer.

Typisk: en komponent dør ut på 10410^{-4} sekunder, mens den interessante oppførselen skjer over sekunder. Da tvinger den raske komponenten en eksplisitt metode til å bruke absurd små skritt — ikke for nøyaktighetens skyld, men for at metoden i det hele tatt skal holde seg stabil.

Eksempel: y=20yy'=-20y med y(0)=1y(0)=1 og h=0,1h=0{,}1. Eksplisitt Euler gir

y1=1+0,1(20)=1,y_1=1+0{,}1\cdot(-20)=-1,

altså feil fortegn og større tallverdi enn vi startet med. Fortsetter du, vokser yn|y_n| uten grense — mens den eksakte løsningen e20te^{-20t} går raskt mot null.

Bakover-Euler gir derimot

y1=11+200,1=130,3333,y_1=\frac{1}{1+20\cdot 0{,}1}=\frac13\approx 0{,}3333,

som er for stort sammenliknet med e20,1353e^{-2}\approx 0{,}1353, men i det minste positivt og avtakende.

Dette er kjernen i stabilitet, og det er hele temaet i kap. 7.4. For stive problemer er implisitte metoder ikke et alternativ — de er det eneste brukbare.

✏️Bakover-Euler i lineært og ikke-lineært tilfelle
a) Gitt y=t2yy'=t-2y med y(0)=1y(0)=1 og h=0,2h=0{,}2. Ta ett bakover-Euler-skritt og sammenlikn med de eksplisitte metodene.

b) Gitt y=y2y'=-y^{2} med y(0)=1y(0)=1 og h=0,5h=0{,}5. Ta ett bakover-Euler-skritt. Eksakt: y(0,5)=11,50,6666667y(0{,}5)=\tfrac{1}{1{,}5}\approx 0{,}6666667.

a) Lineært tilfelle. Likningen er

y1=y0+hf(t1,y1)=1+0,2(0,22y1).y_1=y_0+h\,f\left(t_1,y_1\right)=1+0{,}2\left(0{,}2-2y_1\right).

Gang ut og samle y1y_1:

y1=1+0,040,4y1  y1+0,4y1=1,04  1,4y1=1,04.y_1=1+0{,}04-0{,}4y_1\ \Longrightarrow\ y_1+0{,}4y_1=1{,}04\ \Longrightarrow\ 1{,}4\,y_1=1{,}04.

y1=1,041,4=104140=26350,7428571.y_1=\frac{1{,}04}{1{,}4}=\frac{104}{140}=\frac{26}{35}\approx 0{,}7428571.

Sammenlikning med de andre metodene:

Metodey1y_1FeilEvalueringer
Eksplisitt Euler0,60{,}68,791028{,}79\cdot 10^{-2}1
Bakover-Euler0,74285710{,}74285715,501025{,}50\cdot 10^{-2}1 + en likning
Heun0,70{,}71,211021{,}21\cdot 10^{-2}2
RK40,6880{,}6889,991059{,}99\cdot 10^{-5}4
Eksakt0,68790010{,}6879001

Legg merke til at bakover-Euler bommer på motsatt side av eksplisitt Euler, og omtrent like mye. Det er typisk: den ene metoden undervurderer, den andre overvurderer, og begge har orden 1.
Er bakover-Euler da bortkastet her? For dette problemet, ja — det er ikke stivt, og de eksplisitte metodene er både enklere og bedre. Poenget med bakover-Euler er ikke nøyaktighet, men stabilitet, og den gevinsten ser du ikke før i kap. 7.4.
b) Ikke-lineært tilfelle. Likningen er
y1=1+0,5(y12)=10,5y12.y_1=1+0{,}5\cdot\left(-y_1^{2}\right)=1-0{,}5\,y_1^{2}.
Nå står y1y_1 i annen potens — dette er ikke lenger en lineær likning. Ordne den:
0,5y12+y11=0  y12+2y12=0.0{,}5\,y_1^{2}+y_1-1=0\ \Longleftrightarrow\ y_1^{2}+2y_1-2=0.

Abc-formelen:

y1=2±4+82=2±232=1±3.y_1=\frac{-2\pm\sqrt{4+8}}{2}=\frac{-2\pm 2\sqrt3}{2}=-1\pm\sqrt3.

Vi trenger den positive rota (løsningen starter i 1 og avtar mot null, den blir aldri negativ):

y1=310,7320508.y_1=\sqrt3-1\approx 0{,}7320508.

Feil: 0,73205080,66666670,0653841\left|0{,}7320508-0{,}6666667\right|\approx 0{,}0653841.

(Til sammenlikning gir eksplisitt Euler y1=1+0,5(1)=0,5y_1=1+0{,}5\cdot(-1)=0{,}5, med feil 0,16666670{,}1666667 — mer enn dobbelt så mye.)

Merk hva som skjedde. Her lot likningen seg løse eksakt fordi den var en andregradslikning. I praksis er den sjelden det, og da må du bruke Newtons metode på

G(z)=z1+0,5z2=0,G(z)=1+z.G(z)=z-1+0{,}5z^{2}=0,\qquad G'(z)=1+z.

Fra startverdien z0=0,5z_0=0{,}5 (Euler-prediksjonen) gir Newton

z1=0,50,51+0,1251,5=0,5+0,3751,5=0,75,z_1=0{,}5-\frac{0{,}5-1+0{,}125}{1{,}5}=0{,}5+\frac{0{,}375}{1{,}5}=0{,}75,

z2=0,750,751+0,281251,75=0,750,031251,750,7321429,z_2=0{,}75-\frac{0{,}75-1+0{,}28125}{1{,}75}=0{,}75-\frac{0{,}03125}{1{,}75}\approx 0{,}7321429,

altså fire korrekte siffer på to Newton-skritt. Det er den fulle prisen for ett implisitt skritt: én likningsløsning, som selv er en iterasjon.

Tidsbruk på eksamen: det lineære tilfellet er 3 minutter, det ikke-lineære 6–8.

📝Oppgave 5
M

Gitt y=4y+ty'=-4y+t med y(0)=2y(0)=2 og h=0,25h=0{,}25.

a) Ta ett eksplisitt Euler-skritt.
b) Ta ett bakover-Euler-skritt.
c) Kommenter de to svarene.

Løkke 4 — Systemer og full eksamensoppgave (~13 min)

Alle metodene i kapitlet virker uendret på systemer av differensiallikninger — du bytter bare tall mot vektorer. Det er verdt fem minutter, fordi det er slik metodene faktisk brukes.

Systemer av differensiallikninger
Skriv systemet på vektorform:

y=f(t,y),y(t0)=y0,\mathbf y'=\mathbf f\left(t,\mathbf y\right),\qquad \mathbf y\left(t_0\right)=\mathbf y_0,

der y\mathbf y og f\mathbf f er vektorer med like mange komponenter som det er likninger.

Alle formlene i kapitlet gjelder ordrett, med kik_i som vektorer:

k1=f(tn,yn),yn+1=yn+hk1(Euler).\mathbf k_1=\mathbf f\left(t_n,\mathbf y_n\right),\qquad \mathbf y_{n+1}=\mathbf y_n+h\,\mathbf k_1\quad\text{(Euler)}.

Praktisk viktig: en høyere ordens likning gjøres om til et system. For y=g(t,y,y)y''=g\left(t,y,y'\right) setter du u=yu=y, v=yv=y' og får

u=v,v=g(t,u,v).u'=v,\qquad v'=g(t,u,v).

Det er slik en andreordens likning løses numerisk — det finnes ingen egen «RK4 for andreordens likninger».

Metodevalg: hvilken løser når?
SituasjonenVelgFordi
Glatt problem, moderat kravRK4best nøyaktighet per evaluering
Rask overslagsregning for håndHeunto evalueringer, orden 2
Bare ett skritt skal visesEulerén evaluering, én linje
Stivt problemBakover-Euler eller annen implisitteksplisitte metoder krever absurd liten hh
Svingende system over lang tidRK4 eller en energibevarende metodeEuler pumper energi inn i systemet

Ber oppgaven om en bestemt metode, bruker du den. Men spør den «hvilken metode ville du valgt, og hvorfor?», er det denne tabellen som er svaret — og begrunnelsen er alltid en avveining mellom orden og antall ff-evalueringer, med stivhet som eneste unntak der regnestykket snus helt om.
Kontrollrutine for ett skritt for hånd

Fem raske sjekker før du leverer:

1. Har alle kik_i samme størrelsesorden? Et vilt avvikende stigningstall betyr nesten alltid feil argument.
2. Summerer vektene til 1? 12(1+1)\displaystyle \frac12(1+1) for Heun, 16(1+2+2+1)\displaystyle \frac16(1+2+2+1) for RK4.
3. Er tt-argumentene riktige? Heun: tnt_n og tn+ht_n+h. RK4: tnt_n, tn+h2\displaystyle t_n+\frac h2, tn+h2\displaystyle t_n+\frac h2, tn+ht_n+h.
4. Er yy-argumentene kjedet riktig? k2k_2 bruker k1k_1, k3k_3 bruker k2k_2, k4k_4 bruker k3k_3.
5. Peker svaret riktig vei? Er f<0f<0 i startpunktet, skal y1<y0y_1<y_0.

Disse fem tar under ett minutt og fanger så godt som alle feilene i sjangeren.

✏️Eksamensnivå: fire metoder, ett problem
Gitt initialverdiproblemet

y=2ty,y(0)=1,h=0,4.y'=2t-y,\qquad y(0)=1,\qquad h=0{,}4.

a) Vis at den eksakte løsningen er y(t)=2t2+3ety(t)=2t-2+3e^{-t}, og regn ut y(0,4)y(0{,}4).
b) Ta ett skritt med Euler og ett med Heun.
c) Ta ett skritt med RK4.
d) Ta ett skritt med bakover-Euler.
e) Sett opp en tabell og rangér metodene etter feil og etter kostnad.

a) Kontroll av den eksakte løsningen.

y(t)=23et,2ty=2t(2t2+3et)=23et.y'(t)=2-3e^{-t},\qquad 2t-y=2t-\left(2t-2+3e^{-t}\right)=2-3e^{-t}.

De to er like ✔, og y(0)=02+3=1y(0)=0-2+3=1 ✔.

y(0,4)=0,82+3e0,4=1,2+30,6703200=1,2+2,0109601=0,8109601.y(0{,}4)=0{,}8-2+3e^{-0{,}4}=-1{,}2+3\cdot 0{,}6703200=-1{,}2+2{,}0109601=0{,}8109601.

b) Euler.

k=f(0; 1)=01=1,y1=1+0,4(1)=0,6.k=f(0;\ 1)=0-1=-1,\qquad y_1=1+0{,}4\cdot(-1)=0{,}6.

Feil: 0,21096010{,}2109601.

Heun.

k1=f(0; 1)=1,k_1=f(0;\ 1)=-1,
k2=f(0,4; 1+0,4(1))=f(0,4; 0,6)=0,80,6=0,2.k_2=f\left(0{,}4;\ 1+0{,}4\cdot(-1)\right)=f(0{,}4;\ 0{,}6)=0{,}8-0{,}6=0{,}2.

y1=1+0,42(1+0,2)=1+0,2(0,8)=10,16=0,84.y_1=1+\frac{0{,}4}{2}\left(-1+0{,}2\right)=1+0{,}2\cdot(-0{,}8)=1-0{,}16=0{,}84.

Feil: 0,02903990{,}0290399.

c) RK4.

k1=f(0; 1)=1,k_1=f(0;\ 1)=-1,
k2=f(0,2; 1+0,2(1))=f(0,2; 0,8)=0,40,8=0,4,k_2=f\left(0{,}2;\ 1+0{,}2\cdot(-1)\right)=f(0{,}2;\ 0{,}8)=0{,}4-0{,}8=-0{,}4,
k3=f(0,2; 1+0,2(0,4))=f(0,2; 0,92)=0,40,92=0,52,k_3=f\left(0{,}2;\ 1+0{,}2\cdot(-0{,}4)\right)=f(0{,}2;\ 0{,}92)=0{,}4-0{,}92=-0{,}52,
k4=f(0,4; 1+0,4(0,52))=f(0,4; 0,792)=0,80,792=0,008.k_4=f\left(0{,}4;\ 1+0{,}4\cdot(-0{,}52)\right)=f(0{,}4;\ 0{,}792)=0{,}8-0{,}792=0{,}008.

Vektet sum: 1+2(0,4)+2(0,52)+0,008=10,81,04+0,008=2,832-1+2(-0{,}4)+2(-0{,}52)+0{,}008=-1-0{,}8-1{,}04+0{,}008=-2{,}832.

y1=1+0,46(2,832)=10,1888=0,8112.y_1=1+\frac{0{,}4}{6}\cdot(-2{,}832)=1-0{,}1888=0{,}8112.

Feil: 0,81120,8109601=0,0002399\left|0{,}8112-0{,}8109601\right|=0{,}0002399.

d) Bakover-Euler.

y1=1+0,4(20,4y1)=1+0,320,4y1.y_1=1+0{,}4\left(2\cdot 0{,}4-y_1\right)=1+0{,}32-0{,}4y_1.

1,4y1=1,32  y1=1,321,4=6670=33350,9428571.1{,}4\,y_1=1{,}32\ \Longrightarrow\ y_1=\frac{1{,}32}{1{,}4}=\frac{66}{70}=\frac{33}{35}\approx 0{,}9428571.

Feil: 0,13189700{,}1318970.

e) Samlet tabell.

Metodey1y_1Feilff-evalueringerOrden
Euler0,60{,}62,111012{,}11\cdot 10^{-1}11
Bakover-Euler0,94285710{,}94285711,321011{,}32\cdot 10^{-1}1 + likning1
Heun0,840{,}842,901022{,}90\cdot 10^{-2}22
RK40,81120{,}81122,401042{,}40\cdot 10^{-4}44
Eksakt0,81096010{,}8109601

Rangering etter feil: RK4, Heun, bakover-Euler, Euler.
Rangering etter kostnad: Euler (1), bakover-Euler (1 + en likning), Heun (2), RK4 (4).
Konklusjonen for et ikke-stivt problem som dette er entydig: RK4 gir nesten tusen ganger mindre feil enn Euler for fire ganger arbeidet. Det er en glimrende handel.
Merk hvor de to Euler-variantene ligger. De har samme orden, men bommer hver sin vei — Euler for lavt, bakover-Euler for høyt. Den eksakte verdien ligger mellom dem, og det er ingen tilfeldighet: gjennomsnittet av de to er 0,77140{,}7714, og en vektet variant av nettopp den ideen gir trapesmetoden — som du møter igjen som Crank–Nicolson i Del 8.
Tidsbruk på eksamen: a) 3 min, b) 5 min, c) 7 min, d) 3 min, e) 4 min — omtrent 22 minutter for en oppgave på 10 poeng, altså rett innenfor budsjettet.
📝Oppgave 6
M
Systemet

u=v,v=u,u'=v,\qquad v'=-u,

med u(0)=1u(0)=1, v(0)=0v(0)=0 og h=0,2h=0{,}2, har den eksakte løsningen u(t)=costu(t)=\cos t, v(t)=sintv(t)=-\sin t.

a) Ta ett Euler-skritt for begge komponentene.
b) Ta ett Heun-skritt.
c) Sammenlikn med u(0,2)=cos0,20,9800666u(0{,}2)=\cos 0{,}2\approx 0{,}9800666 og v(0,2)=sin0,20,1986693v(0{,}2)=-\sin 0{,}2\approx -0{,}1986693.

📝Oppgave 7
M

Gitt y=10yy'=-10y med y(0)=1y(0)=1.

a) Ta ett eksplisitt Euler-skritt med h=0,25h=0{,}25, og deretter med h=0,1h=0{,}1.
b) Ta ett bakover-Euler-skritt med de samme to steglengdene.
c) Den eksakte løsningen er y(t)=e10ty(t)=e^{-10t}. Kommenter hva som skjer, og hvilken hh eksplisitt Euler trenger for å oppføre seg fornuftig.

📝Oppgave 8
M

Vis at Heuns metode har orden 2 for en likning der ff bare avhenger av tt, altså y=f(t)y'=f(t).

a) Hva blir Heun-skrittet i dette tilfellet?
b) Hvilken kvadraturformel svarer det til?
c) Bruk feilleddet derfra til å bestemme den lokale avkuttingsfeilen.

Repetisjonsoppgaver
Din fremgang
0 / 4 oppgaver
Symbol- og formelliste

Dette kapitlet er skrevet av Anthropics toppmodeller (Claude Opus og Claude Fable) og er foreløpig ikke manuelt gjennomgått — kvalitetskontrollen gjøres av uavhengige KI-agenter, og innmeldte feil rettes fortløpende. Funnet en feil? Meld fra, så retter vi den. Les mer om hvordan innholdet lages.

Skolesaga er en uavhengig læringsressurs og er ikke tilknyttet eller godkjent av Norges teknisk-naturvitenskapelige universitet. Dette er ikke offisielt studiemateriell. Les mer.