Tilbake
7.3

7.3 Innfelt RK-par og steglengdekontroll

Den nye sjangeren fra 2022: to $b$-rader gir et lokalt feilestimat som styrer aksept/forkast og neste steglengde.

55 min
12 oppgaver
Innfelt RK-parsteglengdekontroll
Din fremgang i kapitlet
0 / 12 oppgaver
Forkunnskaper: kap. 7.2 — Butcher-tabellen og ordensbetingelsene. Et innfelt par er ikke annet enn én tabell med to vektrader, og du må kunne verifisere ordenen til hver av dem.

Fra kap. 7.1 trenger du å regne stigningstall for hånd.

Fra kap. 6.4 trenger du å kunne løse en ulikhet med en pp-te rot i.

Kapitlet er ikke forutsetning for noe senere kapittel — det er en avsluttet enhet.

Hvor stort skritt tør du ta?

Hittil har hh vært oppgitt. I virkeligheten er det det vanskeligste valget i hele beregningen.

Velger du hh for stor, blir svaret unøyaktig — kanskje ubrukelig.
Velger du hh for liten, bruker du timevis på noe som kunne tatt sekunder.

Og det verste: den riktige hh-en er ikke den samme hele veien. En rakett som står på bakken, trenger små skritt; når den er i bane, kan skrittene bli tusen ganger større. En fast hh må velges etter det verste stedet, og sløser da bort arbeid overalt ellers.

Ideen bak innfelte par er å la metoden måle sin egen feil. Regn skrittet to ganger — én gang med en metode av orden pp, én gang med en av orden p+1p+1 — og bruk forskjellen mellom svarene som et estimat på feilen.

Hverdagsanalogien: to landmålere måler samme avstand med hvert sitt utstyr, ett grovt og ett fint. Er svarene like, stoler du på begge. Spriker de, vet du at det grove utstyret ikke holder mål her — og du vet omtrent hvor mye.

Og det geniale er at det er nesten gratis. De to metodene deler alle stigningstallene kik_i; bare sluttblandingen er forskjellig. To svar til prisen av ett.

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

Løkke 1 — To bb-rader i én tabell (~13 min)

Innfelt Runge–Kutta-par
To Runge–Kutta-metoder som deler nodene cic_i og koeffisientmatrisen AA, men har hver sin vektrad:

yn+1=yn+hibiki(orden p),y_{n+1}=y_n+h\sum_i b_ik_i \qquad\text{(orden } p\text{)},
y^n+1=yn+hib^iki(orden p+1).\hat y_{n+1}=y_n+h\sum_i \hat b_ik_i \qquad\text{(orden } p+1\text{)}.

Det avgjørende er at stigningstallene kik_i er de samme. De regnes én gang og brukes to ganger. Kostnaden for det ekstra svaret er én vektet sum — altså praktisk talt null.

*Ordet «innfelt» (engelsk embedded) betyr nettopp dette: den ene metoden ligger inne i den andre, og deler alt arbeidet.

Skrivemåten* er ofte RKp(p+1)\text{RK}p(p+1), for eksempel «et 2(3)-par» for orden 2 og 3.

Butcher-tabellen for et innfelt par
Én tabell med to rader under streken:

cAb ⁣b^ ⁣\begin{array}{c|c}\mathbf c & A\\ \hline & \mathbf b^{\!\top}\\ \hline & \hat{\mathbf b}^{\!\top}\end{array}

Den øverste vektraden gir metoden av orden pp, den nederste den av orden p+1p+1 — men les alltid oppgaveteksten: konvensjonen varierer, og noen kilder setter den høyeste ordenen øverst.

Slik avgjør du selv hvilken som er hvilken: verifiser ordensbetingelsene fra kap. 7.2 for hver rad. Radene deler c\mathbf c og AA, så regningen går fort.

Tabellen deles ut i oppgaven. Det som må kunnes, er hva du gjør med de to radene.

Det lokale feilestimatet
Forskjellen mellom de to svarene:

ε^=y^n+1yn+1=hi(b^ibi)ki.\hat\varepsilon=\left|\hat y_{n+1}-y_{n+1}\right|=h\left|\sum_i\left(\hat b_i-b_i\right)k_i\right|.

Hvorfor det er et estimat på feilen i yn+1y_{n+1}. Den nøyaktige løsningen ligger nær y^n+1\hat y_{n+1} (som har høyere orden), så

y(tn+1)yn+1y^n+1yn+1=ε^.\left|y\left(t_{n+1}\right)-y_{n+1}\right|\approx\left|\hat y_{n+1}-y_{n+1}\right|=\hat\varepsilon.

Estimatet gjelder den lavere ordens løsningen. For y^n+1\hat y_{n+1} selv er det en overvurdering — den er bedre enn estimatet sier.

Den praktiske formen h(b^ibi)kih\left|\sum(\hat b_i-b_i)k_i\right| er ofte raskest: differansene b^ibi\hat b_i-b_i er som regel enkle brøker, og flere av dem er null.

Formelen må kunnes — den står ikke på det utdelte formelarket.

Modellen ε^Chp+1\hat\varepsilon\approx Ch^{p+1}
Grunnlaget for hele steglengdekontrollen. Den lokale feilen til en metode av orden pp oppfører seg som

ε^(h)Chp+1\hat\varepsilon(h)\approx C\,h^{\,p+1}

for liten hh, der CC avhenger av problemet og av punktet du står i, men ikke av hh.

Bruken: har du målt ε^\hat\varepsilon ved én steglengde h0h_0, kan du forutsi hva den blir ved en annen:

ε^(h1)ε^(h0)=(h1h0)p+1.\frac{\hat\varepsilon\left(h_1\right)}{\hat\varepsilon\left(h_0\right)}=\left(\frac{h_1}{h_0}\right)^{p+1}.

Merk antakelsen: at CC er den samme ved h0h_0 og h1h_1. Det holder når de to steglengdene ikke er altfor ulike — og det er grunnen til at man i praksis begrenser hvor mye hh får endre seg per skritt.

Modellen må kunnes — den er det eneste du trenger for å utlede steglengdeformelen.

✏️Et 2(3)-par: to svar til prisen av ett
Et innfelt par er gitt ved

00001212001120010162316\begin{array}{c|ccc}0 & 0 & 0 & 0\\ \tfrac12 & \tfrac12 & 0 & 0\\ 1 & -1 & 2 & 0\\ \hline & 0 & 1 & 0\\ \hline & \tfrac16 & \tfrac23 & \tfrac16\end{array}

a) Bestem ordenen til hver av de to vektradene.
b) Bruk paret på y=t2yy'=t-2y, y(0)=1y(0)=1, med h=0,2h=0{,}2, og regn begge svarene.
c) Finn det lokale feilestimatet, og sammenlikn med den virkelige feilen. Eksakt: y(0,2)0,6879001y(0{,}2)\approx 0{,}6879001.

a) Ordenene.

Øverste rad, b=(0,1,0)\mathbf b=(0,1,0) — dette er midtpunktsmetoden fra kap. 7.2, utvidet med et ubrukt tredje steg.

- Nivå 1: 0+1+0=10+1+0=1
- Nivå 2: 00+112+01=120\cdot 0+1\cdot\tfrac12+0\cdot 1=\tfrac12
- Nivå 3, første: 1(12)2=14131\cdot\left(\tfrac12\right)^{2}=\tfrac14\ne\tfrac13

Orden 2.

Nederste rad, b^=(16,23,16)\hat{\mathbf b}=\left(\tfrac16,\tfrac23,\tfrac16\right) — dette er Kuttas tredjeordens metode, verifisert i kap. 7.2:

- Nivå 1: 16+23+16=1\tfrac16+\tfrac23+\tfrac16=1
- Nivå 2: 2312+161=13+16=12\tfrac23\cdot\tfrac12+\tfrac16\cdot 1=\tfrac13+\tfrac16=\tfrac12
- Nivå 3, første: 2314+161=16+16=13\tfrac23\cdot\tfrac14+\tfrac16\cdot 1=\tfrac16+\tfrac16=\tfrac13
- Nivå 3, andre: 16((1)0+212)=16\tfrac16\left((-1)\cdot 0+2\cdot\tfrac12\right)=\tfrac16
- Nivå 4, andre: 1611=1618\tfrac16\cdot 1\cdot 1=\tfrac16\ne\tfrac18

Orden 3.

Vi har altså et 2(3)-par: p=2p=2 for den propagerte løsningen, p+1=3p+1=3 for referansen.

b) Stigningstallene. Med f(t,y)=t2yf(t,y)=t-2y:

k1=f(0; 1)=02=2,k_1=f(0;\ 1)=0-2=-2,
k2=f(0,1; 1+0,212(2))=f(0,1; 0,8)=0,11,6=1,5,k_2=f\left(0{,}1;\ 1+0{,}2\cdot\tfrac12\cdot(-2)\right)=f(0{,}1;\ 0{,}8)=0{,}1-1{,}6=-1{,}5,
k3=f(0,2; 1+0,2((1)(2)+2(1,5)))=f(0,2; 1+0,2(1))=f(0,2; 0,8).k_3=f\left(0{,}2;\ 1+0{,}2\left((-1)(-2)+2(-1{,}5)\right)\right)=f\left(0{,}2;\ 1+0{,}2\cdot(-1)\right)=f(0{,}2;\ 0{,}8).

k3=0,21,6=1,4.k_3=0{,}2-1{,}6=-1{,}4.

De to svarene.

y1=1+0,2(0k1+1k2+0k3)=1+0,2(1,5)=10,3=0,7,y_1=1+0{,}2\left(0\cdot k_1+1\cdot k_2+0\cdot k_3\right)=1+0{,}2\cdot(-1{,}5)=1-0{,}3=0{,}7,

y^1=1+0,2(16(2)+23(1,5)+16(1,4)).\hat y_1=1+0{,}2\left(\tfrac16(-2)+\tfrac23(-1{,}5)+\tfrac16(-1{,}4)\right).

Regn parentesen: 1311,46=0,333333310,2333333=1,5666667-\tfrac13-1-\tfrac{1{,}4}{6}=-0{,}3333333-1-0{,}2333333=-1{,}5666667.

y^1=1+0,2(1,5666667)=10,3133333=0,6866667.\hat y_1=1+0{,}2\cdot(-1{,}5666667)=1-0{,}3133333=0{,}6866667.

Merk at alle tre stigningstallene ble brukt to ganger. Det ekstra svaret kostet tre multiplikasjoner og to addisjoner.

c) Feilestimatet.

ε^=y^1y1=0,68666670,7=0,0133333.\hat\varepsilon=\left|\hat y_1-y_1\right|=\left|0{,}6866667-0{,}7\right|=0{,}0133333.

Kontroll med differanseformelen. Vektdifferansene er

b^1b1=160=16,b^2b2=231=13,b^3b3=160=16.\hat b_1-b_1=\tfrac16-0=\tfrac16,\quad \hat b_2-b_2=\tfrac23-1=-\tfrac13,\quad \hat b_3-b_3=\tfrac16-0=\tfrac16.

ε^=h16k113k2+16k3=h6k12k2+k3=0,262+31,4=0,260,4=0,0133333.\hat\varepsilon=h\left|\tfrac16k_1-\tfrac13k_2+\tfrac16k_3\right|=\frac{h}{6}\left|k_1-2k_2+k_3\right|=\frac{0{,}2}{6}\left|-2+3-1{,}4\right|=\frac{0{,}2}{6}\cdot 0{,}4=0{,}0133333.

Samme svar ✔

Sammenlikning med de virkelige feilene.

VerdiVirkelig feil
y1y_1 (orden 2)0,70{,}71,211021{,}21\cdot 10^{-2}
y^1\hat y_1 (orden 3)0,68666670{,}68666671,231031{,}23\cdot 10^{-3}
Estimat ε^\hat\varepsilon1,331021{,}33\cdot 10^{-2}

Estimatet 1,331021{,}33\cdot 10^{-2} treffer feilen i y1y_1 (1,211021{,}21\cdot 10^{-2}) svært godt — det bommer med ti prosent. Det er nøyaktig slik det skal virke.
For y^1\hat y_1 er estimatet derimot ti ganger for stort, siden den løsningen er en orden bedre. Det er en systematisk og velkjent egenskap, og den er en av grunnene til at man ofte propagerer y^\hat y likevel — se løkke 3.
📝Oppgave 1
(Innstegsoppgave — ren avlesning.) Et innfelt par har vektradene

b=(1, 0),b^=(12, 12),\mathbf b=\left(1,\ 0\right),\qquad \hat{\mathbf b}=\left(\tfrac12,\ \tfrac12\right),

med c=(0,1)\mathbf c=(0,1) og a21=1a_{21}=1.

a) Hvilke to kjente metoder er dette?
b) Hvilke ordener har de?
c) Skriv opp feilestimatet uttrykt ved k1k_1 og k2k_2.

📝Oppgave 2
N

Bruk Heun–Euler-paret fra oppgave 1 på y=t2yy'=t-2y, y(0)=1y(0)=1, med h=0,2h=0{,}2.

a) Regn ut k1k_1 og k2k_2.
b) Finn begge svarene og feilestimatet.
c) Aksepteres skrittet mot Tol =101=10^{-1}? Mot Tol =102=10^{-2}?

Løkke 2 — Aksept, forkast og ny steglengde (~15 min)

Feilestimatet er halve jobben. Nå skal det brukes til noe.

Aksept- og forkastregelen
ε^Tol  aksepter skrittet og ga˚ videre,\hat\varepsilon\le\text{Tol}\ \Longrightarrow\ \textbf{aksepter} \text{ skrittet og gå videre},
ε^>Tol  forkast skrittet og gjør det om med mindre h.\hat\varepsilon>\text{Tol}\ \Longrightarrow\ \textbf{forkast} \text{ skrittet og gjør det om med mindre } h.

Merk at det er en absolutt avgjørelse, ikke en gradering. Enten er skrittet godt nok, eller så er det ikke.

I begge tilfellene regner du en ny steglengde. Ved aksept brukes den for neste skritt (og er som regel større). Ved forkast brukes den for å gjøre det samme skrittet om igjen (og er mindre).

Regelen må kunnes — den står ikke på det utdelte formelarket.

Steglengdeformelen
hny=Ph(Tolε^)1/(p+1).h_{\text{ny}}=P\,h\left(\frac{\text{Tol}}{\hat\varepsilon}\right)^{1/(p+1)}.

Utledningen, i tre linjer. Anta ε^Chp+1\hat\varepsilon\approx Ch^{p+1}. Vi vil ha en hnyh_{\text{ny}} slik at den nye feilen blir omtrent Tol:

Chnyp+1=Tol,Chp+1=ε^.C\,h_{\text{ny}}^{\,p+1}=\text{Tol},\qquad C\,h^{\,p+1}=\hat\varepsilon.

Del likningene på hverandre; CC faller bort:

(hnyh)p+1=Tolε^  hny=h(Tolε^)1/(p+1).\left(\frac{h_{\text{ny}}}{h}\right)^{p+1}=\frac{\text{Tol}}{\hat\varepsilon}\ \Longrightarrow\ h_{\text{ny}}=h\left(\frac{\text{Tol}}{\hat\varepsilon}\right)^{1/(p+1)}.

Sikkerhetsfaktoren PP kommer i tillegg og forklares i neste boks.

⚠ Eksponenten er 1p+1\dfrac{1}{p+1}, ikke 1p\dfrac1p. Det er den dokumenterte hovedfeilen i sjangeren, og den kommer av at det er den lokale feilen (orden p+1p+1) som modelleres, ikke den globale.

⚠ Og pp er ordenen til den løsningen du propagerer — den lavere, hvis du ikke gjør lokal ekstrapolasjon. For et 2(3)-par med p=2p=2 er eksponenten 13\tfrac13.

Formelen må kunnes — den står ikke på det utdelte formelarket. Sett den på ditt eget A5-ark.

Sikkerhetsfaktoren PP
Et tall litt under 1, typisk

P=0,8tilP=0,9.P=0{,}8\quad\text{til}\quad P=0{,}9.

Hvorfor den trengs. Formelen bygger på antakelsen ε^Chp+1\hat\varepsilon\approx Ch^{p+1} med konstant CC. Den antakelsen er tilnærmet, ikke eksakt. Sikter du rett på Tol, vil omtrent halvparten av skrittene bomme over — og et forkastet skritt koster hele arbeidet om igjen.

Med P=0,9P=0{,}9 sikter du 10 prosent under, og andelen forkastede skritt faller kraftig. Prisen er noen prosent flere skritt totalt. Det er en god handel.

På eksamen: bruk verdien oppgaven oppgir. Er ingen oppgitt, si hvilken du velger — «med sikkerhetsfaktor P=0,9P=0{,}9 blir …». Å utelate faktoren helt er også akseptabelt hvis du sier fra, men da må du si det.

Begrensning av steglengdeendringen
I praksis låses forholdet mellom ny og gammel steglengde:

0,2  hnyh  5.0{,}2\ \le\ \frac{h_{\text{ny}}}{h}\ \le\ 5.

Hvorfor. Modellen ε^Chp+1\hat\varepsilon\approx Ch^{p+1} forutsetter at CC er den samme ved begge steglengdene. Et sprang på en faktor 100 bryter den forutsetningen fullstendig, og forslaget blir upålitelig.

Eksempel: er ε^\hat\varepsilon svært liten fordi løsningen tilfeldigvis er nesten rett i akkurat dette skrittet, kan formelen foreslå hny=50hh_{\text{ny}}=50h. Neste skritt ville da bomme grovt.

Dette er «kjenne»-stoff — du skal vite at grensene finnes og hvorfor, ikke regne med dem. Ber en oppgave om «foreslå ny steglengde», er det formelen den vil ha.

✏️Forkast og ny steglengde

Fortsett med 2(3)-paret fra eksempel 1, der h=0,2h=0{,}2 ga ε^=0,0133333\hat\varepsilon=0{,}0133333.

a) Avgjør om skrittet aksepteres mot Tol =102=10^{-2}.
b) Foreslå ny steglengde med P=0,9P=0{,}9.
c) Hva ville svaret blitt med Tol =2102=2\cdot 10^{-2}?

a) Avgjørelsen.

ε^=0,0133333>0,01=Tol.\hat\varepsilon=0{,}0133333>0{,}01=\text{Tol}.

Skrittet forkastes. Feilestimatet er omtrent 33 prosent over toleransen, så vi må gjøre skrittet om med kortere steglengde.

b) Ny steglengde. Den propagerte løsningen har orden p=2p=2, så eksponenten er

1p+1=13.\frac{1}{p+1}=\frac13.

hny=Ph(Tolε^)1/3=0,90,2(0,010,0133333)1/3.h_{\text{ny}}=P\,h\left(\frac{\text{Tol}}{\hat\varepsilon}\right)^{1/3}=0{,}9\cdot 0{,}2\cdot\left(\frac{0{,}01}{0{,}0133333}\right)^{1/3}.

Regn brøken først: 0,010,0133333=0,75\dfrac{0{,}01}{0{,}0133333}=0{,}75.

Deretter kubikkrota: 0,751/3=eln0,75/3=e0,2876821/3=e0,09589400,90856030{,}75^{1/3}=e^{\ln 0{,}75/3}=e^{-0{,}2876821/3}=e^{-0{,}0958940}\approx 0{,}9085603.

hny=0,180,90856030,1635.h_{\text{ny}}=0{,}18\cdot 0{,}9085603\approx 0{,}1635.

Svar: gjør skrittet om med h0,164h\approx 0{,}164.

Kontroll av at forslaget er fornuftig: med den nye steglengden forventer vi

ε^nyε^(hnyh)3=0,0133333(0,16350,2)3=0,01333330,54640,0073,\hat\varepsilon_{\text{ny}}\approx\hat\varepsilon\left(\frac{h_{\text{ny}}}{h}\right)^{3}=0{,}0133333\cdot\left(\frac{0{,}1635}{0{,}2}\right)^{3}=0{,}0133333\cdot 0{,}5464\approx 0{,}0073,

altså godt under Tol =0,01=0{,}01 ✔ — nøyaktig den marginen sikkerhetsfaktoren skulle gi.

c) Med Tol =2102=2\cdot 10^{-2}.

ε^=0,01333330,02=Tol.\hat\varepsilon=0{,}0133333\le 0{,}02=\text{Tol}.

Skrittet aksepteres. Vi går videre fra y1=0,7y_1=0{,}7, men regner likevel en ny steglengde for neste skritt:

hny=0,90,2(0,020,0133333)1/3=0,181,51/3=0,181,14471420,2060.h_{\text{ny}}=0{,}9\cdot 0{,}2\cdot\left(\frac{0{,}02}{0{,}0133333}\right)^{1/3}=0{,}18\cdot 1{,}5^{1/3}=0{,}18\cdot 1{,}1447142\approx 0{,}2060.

Svar: aksepter, og bruk h0,206h\approx 0{,}206 på neste skritt.

Legg merke til at formelen er den samme i begge tilfellene. Det eneste som skiller aksept fra forkast, er om du går videre eller regner om — og om hnyh_{\text{ny}} blir større eller mindre enn hh.

Merk også hvor lite hh endrer seg her. Estimatet lå nær toleransen, så forslaget ligger nær den gamle steglengden. Det er et sunnhetstegn: en godt innstilt integrator gjør små justeringer, ikke store sprang.

Tidsbruk på eksamen: dette delpunktet er 4–5 minutter når formelen sitter.

📝Oppgave 3
N

Et innfelt par av orden 3 og 4 brukes med h=0,2h=0{,}2. Den propagerte løsningen har orden 3, og feilestimatet blir ε^=5104\hat\varepsilon=5\cdot 10^{-4}. Toleransen er 10510^{-5}, og P=0,9P=0{,}9.

a) Aksepteres skrittet?
b) Hvilken eksponent skal brukes i steglengdeformelen?
c) Foreslå ny steglengde.

📝Oppgave 4
N

Et 2(3)-par gir ε^=3105\hat\varepsilon=3\cdot 10^{-5} med h=0,1h=0{,}1. Toleransen er 10410^{-4} og P=0,9P=0{,}9.

a) Aksepteres skrittet?
b) Foreslå steglengde for neste skritt.
c) Hvor mye vokser steglengden, og er veksten innenfor den vanlige grensen?

— naturlig pausepunkt (~29 min brukt) —

Du kan hele mekanikken: estimat, aksept, ny steglengde. De to siste løkkene handler om varianten arkivet faktisk bruker, og om et par valg som må gjøres bevisst.

Løkke 3 — Varianten uten tabell, og hvilken løsning du fører videre (~14 min)

Flere av oppgavene i arkivet gir deg ikke noen tabell. De gir deg et feilestimat og en steglengde, og ber deg finne den steglengden som treffer toleransen. Det er samme regnestykke, snudd.

Varianten «ε^\hat\varepsilon oppfører seg som Ch3Ch^{3}»
Oppgaveformen: «feilestimatet ved h0h_0 er ε^0\hat\varepsilon_0, og det oppfører seg som Ch3Ch^{3}. Hvilken h1h_1 gir ε^1Tol\hat\varepsilon_1\approx\text{Tol}

Løsningen er modellen fra løkke 1, brukt direkte:

Tolε^0=(h1h0)3  h1=h0(Tolε^0)1/3.\frac{\text{Tol}}{\hat\varepsilon_0}=\left(\frac{h_1}{h_0}\right)^{3}\ \Longrightarrow\ h_1=h_0\left(\frac{\text{Tol}}{\hat\varepsilon_0}\right)^{1/3}.

Merk at eksponenten leses rett ut av oppgaveteksten. Står det Ch3Ch^{3}, er eksponenten 13\tfrac13; står det Ch4Ch^{4}, er den 14\tfrac14. Du trenger ikke vite hvilken metode det er.

Merk også at sikkerhetsfaktoren ofte er utelatt her. Oppgaven spør etter den steglengden som treffer toleransen, ikke etter et praktisk forslag. Les nøye — og si hva du gjør.

Lokal ekstrapolasjon: hvilken løsning føres videre?

To valg finnes:

Uten lokal ekstrapolasjon: før videre yn+1y_{n+1}, den av orden pp — den løsningen feilestimatet faktisk gjelder for. Da er kontrollen ærlig: du fører videre det du har målt feilen på.

Med lokal ekstrapolasjon: før videre y^n+1\hat y_{n+1}, den av orden p+1p+1. Den er bedre, så hvorfor ikke? Prisen er at feilestimatet nå gjelder en løsning du ikke bruker — det blir en overvurdering.

I praksis brukes lokal ekstrapolasjon nesten alltid. Man tar den beste løsningen man har, og bruker estimatet som en konservativ styring.

Konsekvensen for eksponenten: bruker du lokal ekstrapolasjon konsekvent, argumenterer noen for at eksponenten bør være 1p+2\tfrac{1}{p+2}. På eksamen: bruk 1p+1\tfrac{1}{p+1} med pp som ordenen oppgaven oppgir for den propagerte løsningen, og si hva du har antatt. Konsistens og forklaring er det som teller.

Absolutt kontra relativ toleranse
Absolutt toleranse: ε^Tolabs\hat\varepsilon\le\text{Tol}_{\text{abs}}. Passer når løsningen har en kjent størrelsesorden.

Relativ toleranse: ε^Tolrelyn\hat\varepsilon\le\text{Tol}_{\text{rel}}\left|y_n\right|. Passer når løsningen varierer over mange størrelsesordener.

I praksis kombineres de:

ε^  Tolabs+Tolrelyn.\hat\varepsilon\ \le\ \text{Tol}_{\text{abs}}+\text{Tol}_{\text{rel}}\left|y_n\right|.

Da unngår du to feller: at et rent relativt krav blir umulig når yn0y_n\to 0, og at et rent absolutt krav blir meningsløst når yny_n er enormt.

På eksamen er toleransen alltid absolutt med mindre noe annet står. Dette er kjenne-stoff, men det er verdt én setning hvis en oppgave ber deg drøfte valget.

FSAL-egenskapen
First Same As Last: noen innfelte par er konstruert slik at det siste stigningstallet i ett skritt er identisk med det første i neste.

Det skjer når den siste raden i AA er lik b^\hat{\mathbf b}, og cs=1c_s=1.

Gevinsten: et ss-stegs par koster i praksis bare s1s-1 funksjonsevalueringer per aksepterte skritt, siden ett stigningstall gjenbrukes.

Hvorfor det er verdt å vite: flere av de mest brukte parene i praksis (blant annet det klassiske 4(5)-paret i mange programpakker) har egenskapen, og den forklarer hvorfor de er billigere enn stegtallet skulle tilsi.

Dette er «kjenne»-stoff. Ser du at siste rad i AA er lik en av vektradene, kan du nevne FSAL — det er en presis observasjon som viser at du har lest tabellen.

✏️Eksamensnivå: steglengde fra en oppgitt feilmodell

En integrator med et innfelt par gir et lokalt feilestimat som oppfører seg som ε^Ch3\hat\varepsilon\approx Ch^{3}.

Med h0=0,25h_0=0{,}25 er det målte estimatet ε^0=4103\hat\varepsilon_0=4\cdot 10^{-3}.

a) Hvilken orden har den propagerte løsningen?
b) Finn den steglengden h1h_1 som gir ε^1104\hat\varepsilon_1\approx 10^{-4}.
c) Hvor mange skritt trengs da for å komme fra t=0t=0 til t=1t=1, sammenliknet med h0h_0?
d) Kommenter om forslaget er praktisk brukbart.

a) Modellen for den lokale feilen til en metode av orden pp er ε^Chp+1\hat\varepsilon\approx Ch^{p+1}. Her er eksponenten 3, altså

p+1=3  p=2.p+1=3\ \Longrightarrow\ \boxed{p=2}.

Den propagerte løsningen har orden 2, og paret er et 2(3)-par.

b) Den nye steglengden. Modellen gir

ε^1ε^0=(h1h0)3  h1=h0(ε^1ε^0)1/3.\frac{\hat\varepsilon_1}{\hat\varepsilon_0}=\left(\frac{h_1}{h_0}\right)^{3}\ \Longrightarrow\ h_1=h_0\left(\frac{\hat\varepsilon_1}{\hat\varepsilon_0}\right)^{1/3}.

Sett inn:

ε^1ε^0=1044103=140=0,025.\frac{\hat\varepsilon_1}{\hat\varepsilon_0}=\frac{10^{-4}}{4\cdot 10^{-3}}=\frac{1}{40}=0{,}025.

0,0251/3=eln0,025/3=e3,6889/3=e1,22960,2924.0{,}025^{1/3}=e^{\ln 0{,}025/3}=e^{-3{,}6889/3}=e^{-1{,}2296}\approx 0{,}2924.

h1=0,250,29240,0731.h_1=0{,}25\cdot 0{,}2924\approx 0{,}0731.

Svar: h10,073h_1\approx 0{,}073.

Kontroll: ε^14103(0,07310,25)3=41030,025=104\displaystyle \hat\varepsilon_1\approx 4\cdot 10^{-3}\cdot\left(\frac{0{,}0731}{0{,}25}\right)^{3}=4\cdot 10^{-3}\cdot 0{,}025=10^{-4}

(Merk at vi her ikke har brukt sikkerhetsfaktor. Oppgaven spør etter den hh som treffer toleransen, ikke etter et praktisk forslag. Vil du legge til margin, gir P=0,9P=0{,}9 i stedet h10,066h_1\approx 0{,}066 — si i så fall at du gjorde det.)

c) Antall skritt.

Med h0=0,25:N0=10,25=4 skritt.\text{Med } h_0=0{,}25:\quad N_0=\frac{1}{0{,}25}=4 \text{ skritt}.
Med h1=0,0731:N1=10,073113,7  14 skritt.\text{Med } h_1=0{,}0731:\quad N_1=\frac{1}{0{,}0731}\approx 13{,}7\ \Longrightarrow\ 14 \text{ skritt}.

Tre og en halv gang så mange skritt for førti ganger mindre lokal feil per skritt.

d) Er forslaget brukbart? Ja, og det er verdt å si hvorfor:

Forholdet h1/h0=0,29h_1/h_0=0{,}29 ligger innenfor den vanlige nedre grensen på 0,20{,}2, så modellen ε^Ch3\hat\varepsilon\approx Ch^{3} er fortsatt rimelig — vi ekstrapolerer ikke langt.

Kostnaden er moderat. Fire ganger så mange skritt er en billig pris for førti ganger mindre feil, og det er nettopp fordi ordenen er 2: skalering med h3h^{3} betyr at en tredeling av hh gir en 27-dobling av nøyaktigheten.

En ærlig forbehold: modellen gjelder lokalt. Konstanten CC avhenger av hvor på løsningskurven du står, og den kan endre seg mye gjennom et integrasjonsintervall. Derfor er dette et forslag for neste skritt, ikke en fast steglengde for hele veien — og det er hele poenget med adaptiv kontroll: du regner et nytt forslag hver gang.

Tidsbruk på eksamen: a) 1 min, b) 4 min, c) 2 min, d) 3 min — omtrent 10 minutter.

📝Oppgave 5
N

Et feilestimat oppfører seg som ε^Ch4\hat\varepsilon\approx Ch^{4}. Ved h0=0,4h_0=0{,}4 måles ε^0=8104\hat\varepsilon_0=8\cdot 10^{-4}.

a) Hvilken orden har den propagerte løsningen?
b) Finn h1h_1 som gir ε^1105\hat\varepsilon_1\approx 10^{-5}.
c) Sammenlikn med hva svaret ville blitt hvis eksponenten var 13\tfrac13 i stedet for 14\tfrac14.

Løkke 4 — Full eksamensoppgave (~13 min)

Hvorfor par og ikke to separate kjøringer?

Alternativet til et innfelt par er steghalvering: regn skrittet én gang med hh og to ganger med h/2h/2, og bruk forskjellen som feilestimat.

Innfelt parSteghalvering
Ekstra ff-evalueringer0 (bare en ny vektet sum)omtrent like mange til
Krever egen tabelljanei
Gir feilestimat forden propagerte løsningenden grove løsningen

Steghalvering virker for enhver metode, og det er dens store fordel. Men den dobler regnearbeidet, og det er en høy pris når ff er dyr.
Det innfelte paret får feilestimatet nesten gratis — til gjengjeld må noen ha konstruert en ekstra vektrad med riktig orden over den samme AA og c\mathbf c. Det er et ikke-trivielt arbeid, og det er derfor de brukbare parene er få og navngitte.
På eksamen møter du alltid den innfelte varianten, med tabellen utdelt. Men det er verdt å vite at alternativet finnes, og hvorfor det ikke brukes.

Kontrollrutine for en N-oppgave

Seks sjekker:

1. Hvilken rad har hvilken orden? Verifiser med ordensbetingelsene fra kap. 7.2, eller les det ut av oppgaven.
2. Er alle kik_i regnet med de riktige argumentene? Feil her ødelegger begge svarene samtidig.
3. Er ε^\hat\varepsilon regnet som en absoluttverdi? Estimatet er alltid positivt.
4. Er sammenlikningen ε^\hat\varepsilon mot Tol gjort eksplisitt, med ordet «aksepteres» eller «forkastes»?
5. Er eksponenten 1p+1\tfrac{1}{p+1} med riktig pp?
6. Er hnyh_{\text{ny}} fornuftig? Ved forkast skal den være mindre, ved aksept større. Blir den det motsatte, har du snudd brøken.

Punkt 6 er den beste kontrollen som finnes. Den tar to sekunder og fanger den vanligste regnefeilen: å sette ε^/Tol\hat\varepsilon/\text{Tol} i stedet for Tol/ε^\text{Tol}/\hat\varepsilon.

✏️Eksamensnivå: hele N-sjangeren i én oppgave
Et innfelt par er gitt ved

00001212001120010162316\begin{array}{c|ccc}0 & 0 & 0 & 0\\ \tfrac12 & \tfrac12 & 0 & 0\\ 1 & -1 & 2 & 0\\ \hline & 0 & 1 & 0\\ \hline & \tfrac16 & \tfrac23 & \tfrac16\end{array}

Den øverste vektraden propageres. Bruk paret på

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

med Tol =102=10^{-2} og sikkerhetsfaktor P=0,9P=0{,}9.

a) Regn ut de tre stigningstallene.
b) Finn begge svarene og det lokale feilestimatet.
c) Avgjør om skrittet aksepteres.
d) Foreslå ny steglengde, og si hva den skal brukes til.
e) Kommenter hvor godt estimatet traff, gitt at den eksakte verdien er y(0,2)0,6879001y(0{,}2)\approx 0{,}6879001.

a) Stigningstallene. Med f(t,y)=t2yf(t,y)=t-2y, t0=0t_0=0, y0=1y_0=1, h=0,2h=0{,}2:

k1=f(t0, y0)=f(0; 1)=021=2.k_1=f\left(t_0,\ y_0\right)=f(0;\ 1)=0-2\cdot 1=-2.

k2=f(t0+12h, y0+h12k1)=f(0,1; 1+0,1(2))=f(0,1; 0,8).k_2=f\left(t_0+\tfrac12 h,\ y_0+h\cdot\tfrac12 k_1\right)=f\left(0{,}1;\ 1+0{,}1\cdot(-2)\right)=f(0{,}1;\ 0{,}8).
k2=0,120,8=0,11,6=1,5.k_2=0{,}1-2\cdot 0{,}8=0{,}1-1{,}6=-1{,}5.

k3=f(t0+h, y0+h(k1+2k2))=f(0,2; 1+0,2(23))=f(0,2; 0,8).k_3=f\left(t_0+h,\ y_0+h\left(-k_1+2k_2\right)\right)=f\left(0{,}2;\ 1+0{,}2\left(2-3\right)\right)=f(0{,}2;\ 0{,}8).
k3=0,21,6=1,4.k_3=0{,}2-1{,}6=-1{,}4.

Kontroll: alle tre stigningstallene ligger mellom 2-2 og 1,4-1{,}4, altså i samme størrelsesorden ✔. Og de er negative, som de må være — løsningen avtar fra y0=1y_0=1.

b) De to svarene.

Orden 2 (øverste rad, b=(0,1,0)\mathbf b=(0,1,0)):

y1=y0+hk2=1+0,2(1,5)=10,3=0,7.y_1=y_0+h\,k_2=1+0{,}2\cdot(-1{,}5)=1-0{,}3=0{,}7.

Orden 3 (nederste rad, b^=(16,23,16)\hat{\mathbf b}=\left(\tfrac16,\tfrac23,\tfrac16\right)):

y^1=1+0,2(16(2)+23(1,5)+16(1,4)).\hat y_1=1+0{,}2\left(\tfrac16(-2)+\tfrac23(-1{,}5)+\tfrac16(-1{,}4)\right).

16(2)=0,3333333,23(1,5)=1,16(1,4)=0,2333333.\tfrac16(-2)=-0{,}3333333,\qquad \tfrac23(-1{,}5)=-1,\qquad \tfrac16(-1{,}4)=-0{,}2333333.

Sum: 1,5666667-1{,}5666667.

y^1=1+0,2(1,5666667)=10,3133333=0,6866667.\hat y_1=1+0{,}2\cdot(-1{,}5666667)=1-0{,}3133333=0{,}6866667.

Feilestimatet.

ε^=y^1y1=0,68666670,7=0,0133333.\hat\varepsilon=\left|\hat y_1-y_1\right|=\left|0{,}6866667-0{,}7\right|=0{,}0133333.

Kontroll med differanseformelen: b^ibi=(16, 13, 16)\hat b_i-b_i=\left(\tfrac16,\ -\tfrac13,\ \tfrac16\right), så

ε^=h16k113k2+16k3=0,262+31,4=0,260,4=0,0133333 ✔\hat\varepsilon=h\left|\tfrac16 k_1-\tfrac13 k_2+\tfrac16 k_3\right|=\frac{0{,}2}{6}\left|-2+3-1{,}4\right|=\frac{0{,}2}{6}\cdot 0{,}4=0{,}0133333\ ✔

c) Aksept eller forkast.

ε^=0,0133333motTol=0,01.\hat\varepsilon=0{,}0133333\quad\text{mot}\quad \text{Tol}=0{,}01.

0,0133333>0,01  skrittet forkastes.0{,}0133333>0{,}01\ \Longrightarrow\ \textbf{skrittet forkastes.}

d) Ny steglengde. Den propagerte løsningen har orden p=2p=2, så eksponenten er 1p+1=13\tfrac1{p+1}=\tfrac13:

hny=Ph(Tolε^)1/3=0,90,2(0,010,0133333)1/3=0,180,751/3.h_{\text{ny}}=P\,h\left(\frac{\text{Tol}}{\hat\varepsilon}\right)^{1/3}=0{,}9\cdot 0{,}2\cdot\left(\frac{0{,}01}{0{,}0133333}\right)^{1/3}=0{,}18\cdot 0{,}75^{1/3}.

0,751/30,9085603  hny0,1635.0{,}75^{1/3}\approx 0{,}9085603\ \Longrightarrow\ h_{\text{ny}}\approx 0{,}1635.

Hva den skal brukes til: siden skrittet ble forkastet, skal hny0,164h_{\text{ny}}\approx 0{,}164 brukes til å regne det samme skrittet om igjen — fra t=0t=0, ikke fra t=0,2t=0{,}2. Verdien y1=0,7y_1=0{,}7 kastes.

Kontroll: hny<hh_{\text{ny}}<h ✔ — som det skal være ved forkast.

e) Hvor godt traff estimatet?

VerdiVirkelig feil
y1y_1 (orden 2, propagert)0,70{,}71,2101021{,}210\cdot 10^{-2}
y^1\hat y_1 (orden 3)0,68666670{,}68666671,2331031{,}233\cdot 10^{-3}
Estimat ε^\hat\varepsilon1,3331021{,}333\cdot 10^{-2}

Estimatet på 1,3331021{,}333\cdot 10^{-2} mot den virkelige feilen 1,2101021{,}210\cdot 10^{-2} i den propagerte løsningen — det bommer med omtrent 10 prosent, og det bommer på den forsiktige siden (overvurderer feilen). Det er nøyaktig slik en steglengdekontroll bør oppføre seg.
Hvorfor overvurderer den? Fordi ε^\hat\varepsilon måler avstanden mellom y1y_1 og y^1\hat y_1, mens den virkelige feilen er avstanden mellom y1y_1 og den eksakte løsningen — og y^1\hat y_1 ligger på motsatt side av eksakt i forhold til y1y_1 her. Differansen blir dermed litt større enn feilen.
Og merk at y^1\hat y_1 selv er ti ganger bedre enn estimatet antyder. Hadde vi propagert y^1\hat y_1 i stedet (lokal ekstrapolasjon), ville vi hatt en løsning med feil 1,21031{,}2\cdot 10^{-3} og en styring som trodde feilen var 1,31021{,}3\cdot 10^{-2} — konservativt, men brukbart. Det er den vanlige praksisen, og den er verdt å nevne.
Tidsbruk på eksamen: a) 5 min, b) 6 min, c) 1 min, d) 4 min, e) 4 min — omtrent 20 minutter for en oppgave på 10 poeng.
📝Oppgave 6
N

Bruk 2(3)-paret fra eksempel 4 på y=yty'=y-t, y(0)=2y(0)=2, med h=0,4h=0{,}4, Tol =5103=5\cdot 10^{-3} og P=0,9P=0{,}9.

a) Regn ut k1k_1, k2k_2 og k3k_3.
b) Finn begge svarene og feilestimatet.
c) Aksepteres skrittet? Foreslå ny steglengde.

📝Oppgave 7
N

Et innfelt par har p=2p=2, og en integrator kjører med Tol =106=10^{-6}.

a) Hvor mye må hh reduseres for at feilestimatet skal falle med en faktor 1000?
b) En kollega bruker eksponenten 1p=12\tfrac1p=\tfrac12 i stedet for 1p+1=13\tfrac1{p+1}=\tfrac13. Hvilken steglengde foreslår hun når ε^=103\hat\varepsilon=10^{-3} og h=0,1h=0{,}1, og hva blir konsekvensen?
c) Hvor mange skritt bruker de to variantene på intervallet [0,1][0,1]?

📝Oppgave 8
N
Et innfelt par er gitt ved

00001313002302301403414340\begin{array}{c|ccc}0 & 0 & 0 & 0\\ \tfrac13 & \tfrac13 & 0 & 0\\ \tfrac23 & 0 & \tfrac23 & 0\\ \hline & \tfrac14 & 0 & \tfrac34\\ \hline & \tfrac14 & \tfrac34 & 0\end{array}

a) Bestem ordenen til hver vektrad.
b) Er dette et brukbart innfelt par? Begrunn.
c) Hvilken forutsetning for steglengdekontrollen bryter dette paret?

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.