Tilbake
8.3

8.3 Crank–Nicolson og implisitte skjemaer

Det implisitte Crank–Nicolson-skjemaet (trapes i tid), det tridiagonale systemet det gir, og hvorfor det er ubetinget stabilt.

55 min
11 oppgaver
Crank–Nicolsonimplisitte skjemaer
Din fremgang i kapitlet
0 / 11 oppgaver
Forkunnskaper: kap. 8.2 — det eksplisitte skjemaet, stabilitetstallet rr og hva ustabilitet er. Uten det kapitlet gir dette ingen mening, for hele Crank–Nicolson er et svar på problemet som ble avdekket der. Fra kap. 8.1 trengs differansekvotientene.

Fra tidligere matematikkemner forutsettes at du kan løse et lite lineært likningssystem med Gauss-eliminasjon eller innsetting, og at du vet hva en matrise er. Ingen kunnskap om numerisk lineær algebra kreves — systemene i dette kapitlet har to eller tre ukjente og løses for hånd.

Kapitlet er nyttig, men ikke nødvendig, før kap. 8.4.

Regningen som gjorde stabilitetskravet uakseptabelt

I kap. 8.2 endte oppgave 4 med et tall som fortjener å bli stående: for å regne fram til t=1t = 1 på et gitter med tjue romlige punkter, med diffusivitet c2=9c^2 = 9, trengs 7200 tidssteg. Ikke fordi vi trenger så fin oppløsning i tid — men fordi skjemaet ellers sprenger.

Det er en dårlig handel. Vi betaler tusenvis av tidssteg for en nøyaktighet vi ikke har bruk for, bare for å kjøpe stabilitet.

Ideen som løser det, er nesten frekk: hvis problemet er at høyresiden regnes ut på det gamle tidsnivået, hvorfor ikke regne den ut på det nye? Da får du et skjema der den ukjente står på begge sider — og det er ikke lenger en formel du kan sette inn i, men et likningssystem du må løse.

Prisen er reell, og gevinsten er større. Ett likningssystem per tidssteg, mot fullstendig frihet i valget av Δt\Delta t. For lange kjøringer er det ikke i nærheten av å være et vanskelig valg.

Crank–Nicolson går ett skritt lenger og tar gjennomsnittet av det gamle og det nye nivået. Det er trapesregelen brukt på tidsaksen, og det gir andre orden i tid — mot det eksplisitte skjemaets første. Du får altså både bedre nøyaktighet og ubetinget stabilitet, for prisen av å løse et lite system.

Kapitlet gjør fire ting: innfører den implisitte ideen i sin enkleste form, setter opp Crank–Nicolson og løser et system for hånd, viser hvorfor skjemaet er stabilt uansett rr, og drøfter ærlig når det faktisk lønner seg.

Flashcard- og repetisjonsstoff — hopp trygt over ved førstegangslesing. Definisjonsboksene i dette kapitlet er samtidig kortene i flashcard-bunken. Ved første gjennomlesing holder det å lese formelen og gå videre til eksempelet; tidsanslaget på 55 minutter gjelder kjernestoffet.

Løkke 1 — Den implisitte ideen i sin enkleste form (~13 min)

Før Crank–Nicolson tar vi det enkleste implisitte skjemaet. Det er lettere å forstå, det viser hele mekanismen, og det dukker opp på formelarket under navnet bakover-Euler.

Implisitt skjema

Et skjema der den ukjente verdien på det nye tidsnivået opptrer flere steder i samme likning, slik at den ikke kan isoleres.

Konsekvensen er at alle de indre verdiene på nivå n+1n+1 må finnes samtidig, ved å løse et lineært likningssystem. Kontrasten er det eksplisitte skjemaet i kap. 8.2, der hver ny verdi leses rett ut.

Hvorfor gjøre det vanskelig? Fordi implisitte skjemaer ikke har noen stabilitetsgrense. Hele kapitlet er en utveksling: mer arbeid per steg, ingen grense på hvor stort steget kan være.

Bakover-Euler-skjemaet
Bruk den baklengs differansen i tid, slik at romleddet regnes ut på det nye nivået:

Uin+1UinΔt=c2Ui+1n+12Uin+1+Ui1n+1h2.\frac{U_i^{n+1} - U_i^n}{\Delta t} = c^2\,\frac{U_{i+1}^{n+1} - 2U_i^{n+1} + U_{i-1}^{n+1}}{h^2}.

Ryddet opp, med r=c2Δt/h2r = c^2\Delta t/h^2:

rUi1n+1+(1+2r)Uin+1rUi+1n+1=Uin.-r\,U_{i-1}^{n+1} + (1+2r)\,U_i^{n+1} - r\,U_{i+1}^{n+1} = U_i^n.

Legg merke til fortegnene: r-r på naboene, +(1+2r)+(1+2r) på diagonalen. Det er motsatt av det eksplisitte skjemaet, og det er ikke tilfeldig — det er nettopp fortegnsmønsteret som gjør matrisen godt oppført.

Skjemaet er ubetinget stabilt, men bare O(Δt)O(\Delta t) i tid. Det står på det utdelte formelarket sammen med de andre Euler-variantene — tren oppslaget.

Hvorfor bakover-Euler ikke kan sprenge. Sett inn en bølgekomponent Uin=ξneiβxiU_i^n = \xi^n e^{\mathrm{i}\beta x_i}. Naboleddene gir e±iβhe^{\pm\mathrm{i}\beta h}, og eiβh+eiβh=2cosβhe^{\mathrm{i}\beta h} + e^{-\mathrm{i}\beta h} = 2\cos\beta h, så

ξ(2rcosβh+1+2r)=1ξ=11+2r(1cosβh).\xi\left(-2r\cos\beta h + 1 + 2r\right) = 1 \quad\Longrightarrow\quad \xi = \frac{1}{1 + 2r(1-\cos\beta h)}.

Med identiteten 1cosθ=2sin2(θ/2)1 - \cos\theta = 2\sin^2(\theta/2):

ξ=11+4rsin2 ⁣(βh2).\xi = \frac{1}{1 + 4r\sin^2\!\left(\frac{\beta h}{2}\right)}.

Nevneren er alltid minst 1, uansett hvor stor rr er. Derfor er 0<ξ10 < \xi \le 1 for enhver rr og enhver bølgelengde: ingen mode kan vokse.

Intuisjon: i det eksplisitte skjemaet ganges feilen med noe som kan være større enn 1 i tallverdi. I det implisitte deles den på noe som alltid er større enn 1. Divisjon kan aldri forstørre.

Sammenlign med kap. 8.2: der var ξ=14rsin2(βh/2)\xi = 1 - 4r\sin^2(\beta h/2), som stuper under 1-1 så snart r>12r > \tfrac12. Her står den samme størrelsen i nevneren i stedet for i telleren, og hele problemet forsvinner.

📝Oppgave 1

(Innstegsoppgave — ren avlesning.) Skriv opp bakover-Euler-skjemaet for ut=uxxu_t = u_{xx} med h=0,5h = 0{,}5 og Δt=0,25\Delta t = 0{,}25.

a) Hva er rr?
b) Skriv likningen for et indre punkt med tallene satt inn.
c) Hvorfor kan du ikke løse den for Uin+1U_i^{n+1} alene?

Løkke 2 — Crank–Nicolson og det tridiagonale systemet (~16 min)

Bakover-Euler er stabilt, men bare førsteordens i tid — akkurat som det eksplisitte. Crank–Nicolson fikser det med et grep du kjenner fra kap. 6.2: trapesregelen.

Trapesregelen i tid
Det eksplisitte skjemaet regner romleddet på det gamle nivået, bakover-Euler på det nye. Crank–Nicolson tar gjennomsnittet av de to.

Uin+1UinΔt=c22(δ2Uin+1h2+δ2Uinh2),\frac{U_i^{n+1}-U_i^n}{\Delta t} = \frac{c^2}{2}\left(\frac{\delta^2U_i^{n+1}}{h^2} + \frac{\delta^2U_i^{n}}{h^2}\right),

der δ2Ui=Ui+12Ui+Ui1\delta^2U_i = U_{i+1}-2U_i+U_{i-1} fra kap. 8.1.

Dette er nøyaktig trapesregelen brukt på integralet av høyresiden over ett tidssteg: gjennomsnittet av endepunktverdiene. Og det er derfra ordenen kommer — trapesregelen er andreordens, så tidsdelen blir O(Δt2)O(\Delta t^2) i stedet for O(Δt)O(\Delta t).

Intuisjon: det eksplisitte skjemaet gjetter framover fra der du står, det implisitte gjetter bakover fra der du havner. Sannheten ligger i midten, og gjennomsnittet treffer den bedre enn begge.

Crank–Nicolson-skjemaet
Ganget opp slik det står på det utdelte formelarket:

(2+2r)Uin+1r(Ui+1n+1+Ui1n+1)=(22r)Uin+r(Ui+1n+Ui1n),(2+2r)\,U_i^{n+1} - r\left(U_{i+1}^{n+1} + U_{i-1}^{n+1}\right) = (2-2r)\,U_i^{n} + r\left(U_{i+1}^{n} + U_{i-1}^{n}\right),

med r=c2Δt/h2r = c^2\Delta t/h^2 som før.

Formen er lett å huske fordi den er symmetrisk: venstre og høyre side er speilbilder, bortsett fra at r-r blir +r+r og 2+2r2+2r blir 22r2-2r.

Formelen står på det utdelte formelarket — tren oppslaget. Å sette den opp som et matrisesystem, med randbidragene på riktig side, må kunnes.

Deler du på 2, får du den andre vanlige formen: (1+r)Uin+1r2(Ui+1n+1+Ui1n+1)=(1r)Uin+r2(Ui+1n+Ui1n)(1+r)U_i^{n+1} - \tfrac r2\left(U_{i+1}^{n+1}+U_{i-1}^{n+1}\right) = (1-r)U_i^n + \tfrac r2\left(U_{i+1}^n+U_{i-1}^n\right). Begge er riktige; bruk den arket har.

Tridiagonal matrise
En matrise der bare hoveddiagonalen og de to nabodiagonalene er forskjellige fra null:

A=(2+2rrr2+2rrr2+2rr)A = \begin{pmatrix} 2+2r & -r & & \\ -r & 2+2r & -r & \\ & -r & 2+2r & -r \\ & & \ddots & \ddots\end{pmatrix}

Formen kommer direkte av stensilen: hver likning knytter bare et punkt til sine to nærmeste naboer.

Hvorfor det er en god nyhet: et tridiagonalt system med mm ukjente løses med omtrent 8m8m regneoperasjoner, mot 23m3\tfrac23 m^3 for en full matrise. Kostnaden per tidssteg er altså proporsjonal med antall punkter, akkurat som for det eksplisitte skjemaet — bare med en større konstant.

Matrisen her er i tillegg diagonaldominant: 2+2r>r+r=2r|2+2r| > |-r| + |-r| = 2r for alle r>0r > 0. Det garanterer at systemet har entydig løsning og at eliminasjonen aldri deler på noe lite.

Systemet AUn+1=bA\mathbf U^{n+1} = \mathbf b
Skriv Crank–Nicolson for hvert indre punkt i=1,,N1i = 1,\dots,N-1, og samle. Ukjentvektoren er

Un+1=(U1n+1, U2n+1, , UN1n+1) ⁣,\mathbf U^{n+1} = \left(U_1^{n+1},\ U_2^{n+1},\ \dots,\ U_{N-1}^{n+1}\right)^{\!\top},

matrisen AA er den tridiagonale over, og høyresiden er hele det gamle tidsnivået:

bi=(22r)Uin+r(Ui+1n+Ui1n).b_i = (2-2r)\,U_i^{n} + r\left(U_{i+1}^{n} + U_{i-1}^{n}\right).

Ett system per tidssteg. Matrisen AA er den samme hele veien — bare høyresiden endres. Det er verdt å si i en drøftingsoppgave: eliminasjonen kan gjøres én gang og gjenbrukes.

Randbidragene i høyresiden
I den første likningen (i=1i = 1) står U0n+1U_0^{n+1} på venstre side, og i den siste (i=N1i = N-1) står UNn+1U_N^{n+1}. Begge er kjent fra randbetingelsen, så de flyttes over til høyresiden:

b1=(22r)U1n+r(U2n+U0n)+rU0n+1,b_1 = (2-2r)U_1^n + r\left(U_2^n + U_0^n\right) + r\,U_0^{n+1},
bN1=(22r)UN1n+r(UN2n+UNn)+rUNn+1.b_{N-1} = (2-2r)U_{N-1}^n + r\left(U_{N-2}^n + U_N^n\right) + r\,U_N^{n+1}.

Merk at randverdien opptrer på begge tidsnivåer — det gamle bidraget står allerede i formelen, det nye må flyttes over.

Ved homogene randbetingelser (U0=UN=0U_0 = U_N = 0) faller begge bort, og høyresiden er den samme formelen overalt. Det er derfor de fleste eksamensoppgavene har kalde ender: da slipper man dette. Å glemme randbidraget ved ikke-homogen rand er en av de dokumenterte feilene i sjangeren.

✏️Sett opp systemet og løs ett tidssteg for hånd
Løs ut=uxxu_t = u_{xx}[0,1][0,1] med u(0,t)=u(1,t)=0u(0,t) = u(1,t) = 0 og starttemperaturen

u(x,0)={x,0x12,1x,12<x1,u(x,0) = \begin{cases} x, & 0 \le x \le \tfrac12,\\[2pt] 1-x, & \tfrac12 < x \le 1,\end{cases}

med Crank–Nicolson, h=0,25h = 0{,}25 og Δt=0,0625\Delta t = 0{,}0625. Sett opp AU1=bA\mathbf U^1 = \mathbf b, løs, og ta ett skritt til.

Steg 1 — regn ut rr.

r=c2Δth2=0,06250,0625=1.r = \frac{c^2\Delta t}{h^2} = \frac{0{,}0625}{0{,}0625} = 1.

Merk hva r=1r = 1 betyr: det er dobbelt så stort som grensen 12\tfrac12 for det eksplisitte skjemaet. Med Crank–Nicolson er det helt lovlig, og vi skal se i løkke 3 hva som skjer om man prøver det samme eksplisitt.

Steg 2 — sett inn i formelen fra arket. Med r=1r = 1 er 2+2r=42+2r = 4 og 22r=02-2r = 0, så hele det gamle midtleddet faller bort:

4Uin+1(Ui+1n+1+Ui1n+1)=Ui+1n+Ui1n.4U_i^{n+1} - \left(U_{i+1}^{n+1} + U_{i-1}^{n+1}\right) = U_{i+1}^{n} + U_{i-1}^{n}.

Det er en tilfeldighet ved akkurat r=1r = 1, og den gjør regningen kort.

Steg 3 — startraden. Gitterpunktene er 0; 0,25; 0,5; 0,75; 10;\ 0{,}25;\ 0{,}5;\ 0{,}75;\ 1, så

U00=0,U10=0,25,U20=0,5,U30=0,25,U40=0.U_0^0 = 0, \quad U_1^0 = 0{,}25, \quad U_2^0 = 0{,}5, \quad U_3^0 = 0{,}25, \quad U_4^0 = 0.

Steg 4 — høyresiden. For i=1,2,3i = 1,2,3 er bi=Ui+10+Ui10b_i = U_{i+1}^0 + U_{i-1}^0:

b1=U20+U00=0,5+0=0,5,b_1 = U_2^0 + U_0^0 = 0{,}5 + 0 = 0{,}5,
b2=U30+U10=0,25+0,25=0,5,b_2 = U_3^0 + U_1^0 = 0{,}25 + 0{,}25 = 0{,}5,
b3=U40+U20=0+0,5=0,5.b_3 = U_4^0 + U_2^0 = 0 + 0{,}5 = 0{,}5.

Randbidraget på nytt tidsnivå er rU01=0r\,U_0^{1} = 0 og rU41=0r\,U_4^{1} = 0, siden randen er kald. Ingenting å legge til.

Steg 5 — systemet.

(410141014)(U11U21U31)=(0,50,50,5).\begin{pmatrix} 4 & -1 & 0\\ -1 & 4 & -1\\ 0 & -1 & 4\end{pmatrix}\begin{pmatrix}U_1^1\\ U_2^1\\ U_3^1\end{pmatrix} = \begin{pmatrix}0{,}5\\ 0{,}5\\ 0{,}5\end{pmatrix}.

Steg 6 — løs. Både data og system er symmetriske om midten, så U11=U31U_1^1 = U_3^1. Det reduserer systemet til to likninger:

4U1U2=0,5,2U1+4U2=0,5.4U_1 - U_2 = 0{,}5, \qquad -2U_1 + 4U_2 = 0{,}5.

Fra den første: U2=4U10,5U_2 = 4U_1 - 0{,}5. Sett inn i den andre:

2U1+16U12=0,514U1=2,5U1=528=0,178571.-2U_1 + 16U_1 - 2 = 0{,}5 \quad\Longrightarrow\quad 14U_1 = 2{,}5 \quad\Longrightarrow\quad U_1 = \frac{5}{28} = 0{,}178571.

U2=452812=20281428=628=314=0,214286.U_2 = 4\cdot\frac{5}{28} - \frac12 = \frac{20}{28} - \frac{14}{28} = \frac{6}{28} = \frac{3}{14} = 0{,}214286.

Rad 1: (0; 528; 314; 528; 0)\left(0;\ \tfrac{5}{28};\ \tfrac{3}{14};\ \tfrac{5}{28};\ 0\right).

Kontroll: sett inn i den midterste likningen: 528+4628528=5+24528=1428=0,5-\tfrac{5}{28} + 4\cdot\tfrac{6}{28} - \tfrac{5}{28} = \tfrac{-5+24-5}{28} = \tfrac{14}{28} = 0{,}5. ✓

Steg 7 — ett skritt til. Ny høyreside fra rad 1:

b1=U21+U01=628+0=314,b2=U31+U11=528+528=514,b3=314.b_1 = U_2^1 + U_0^1 = \tfrac{6}{28} + 0 = \tfrac{3}{14}, \qquad b_2 = U_3^1 + U_1^1 = \tfrac{5}{28}+\tfrac{5}{28} = \tfrac{5}{14}, \qquad b_3 = \tfrac{3}{14}.

Samme matrise, samme symmetri:

4U1U2=314,2U1+4U2=514.4U_1 - U_2 = \tfrac{3}{14}, \qquad -2U_1 + 4U_2 = \tfrac{5}{14}.

14U1=1214+514=1714U12=17196=0,086735,14U_1 = \tfrac{12}{14} + \tfrac{5}{14} = \tfrac{17}{14} \quad\Longrightarrow\quad U_1^2 = \frac{17}{196} = 0{,}086735,

U22=417196314=6819642196=26196=1398=0,132653.U_2^2 = 4\cdot\frac{17}{196} - \frac{3}{14} = \frac{68}{196} - \frac{42}{196} = \frac{26}{196} = \frac{13}{98} = 0{,}132653.

Steg 8 — kontroll mot fasiten. Den analytiske løsningen fra kap. 5.2 er u=nBnsin(nπx)en2π2tu = \sum_n B_n\sin(n\pi x)e^{-n^2\pi^2t} med Bn=4n2π2sinnπ2\displaystyle B_n = \frac{4}{n^2\pi^2}\sin\frac{n\pi}{2} for denne hattefunksjonen. Regnet ut ved t=0,0625t = 0{,}0625:

u(0,5; 0,0625)=0,218883.u(0{,}5;\ 0{,}0625) = 0{,}218883.

Crank–Nicolson ga 0,2142860{,}214286 — avvik 0,00460{,}0046, altså 2 %, på et gitter med bare tre indre punkter og med et tidssteg dobbelt så stort som det eksplisitte skjemaet i det hele tatt har lov til å bruke.

Merk et ærlig forbehold: i punktet x=0,25x = 0{,}25 er avviket større, 0,17860{,}1786 mot eksakt 0,15450{,}1545. Startdataene har et knekkpunkt i x=0,5x = 0{,}5, og et knekkpunkt bryter forutsetningen om at uu er deriverbar nok ganger til at O(h2)O(h^2)-argumentet holder. Grovt gitter pluss knekk gir større feil enn ordenen alene lover.

📝Oppgave 2

Skriv opp Crank–Nicolson-formelen med tallene satt inn for r=0,5r = 0{,}5, og oppgi matrisen AA for et gitter med tre indre punkter og kalde ender.

📝Oppgave 3
P
Bruk Crank–Nicolson på ut=uxxu_t = u_{xx}, [0,1][0,1], kalde ender, med h=0,25h = 0{,}25, Δt=0,03125\Delta t = 0{,}03125 og

u(x,0)=sinπx.u(x,0) = \sin \pi x.

a) Regn ut rr.
b) Sett opp AU1=bA\mathbf U^1 = \mathbf b med tall.
c) Løs systemet og sammenlign med den eksakte løsningen u=eπ2tsinπxu = e^{-\pi^2t}\sin\pi x.

Løkke 3 — Ubetinget stabilitet, og hva det er verdt (~13 min)

— naturlig pausepunkt —

Nå til kortsvaret som skiller toppsjiktet: hvorfor er Crank–Nicolson stabilt for enhver rr? Argumentet er tre linjer og bruker samme grep som i kap. 8.2.

Utledningen. Sett en bølgekomponent Uin=ξneiβxiU_i^n = \xi^n e^{\mathrm{i}\beta x_i} inn i skjemaet. Naboleddene gir eiβh+eiβh=2cosβhe^{\mathrm{i}\beta h}+e^{-\mathrm{i}\beta h} = 2\cos\beta h på begge sider:

ξ(2+2r2rcosβh)=22r+2rcosβh.\xi\left(2+2r - 2r\cos\beta h\right) = 2-2r + 2r\cos\beta h.

Del alt på 2 og bruk 1cosθ=2sin2(θ/2)1-\cos\theta = 2\sin^2(\theta/2). Sett s=2rsin2 ⁣(βh2)0\displaystyle s = 2r\sin^2\!\left(\frac{\beta h}{2}\right) \ge 0:

ξ(1+s)=1s ξ=1s1+s. \xi\,(1 + s) = 1 - s \quad\Longrightarrow\quad \boxed{\ \xi = \frac{1-s}{1+s}.\ }

Nå er saken avgjort. For enhver s0s \ge 0 er

1<1s1+s1,-1 < \frac{1-s}{1+s} \le 1,

fordi telleren alltid er mindre enn nevneren i tallverdi. Ingen mode kan vokse, uansett hvor stor rr er. Skjemaet er ubetinget stabilt. \blacksquare

Intuisjon: ss måler hvor «hardt» diffusjonen virker på den aktuelle bølgen. Formelen (1s)/(1+s)(1-s)/(1+s) er en gammel kjenning — den avbilder hele den positive halvaksen inn i intervallet (1,1](-1,1], uansett hvor stor ss blir. Det er hele hemmeligheten.

Sammenlign de tre skjemaene for samme ss:

Skjemaξ\xiStabilitetOrden i tid
Eksplisitt12s1-2skrever r12r \le \tfrac12O(Δt)O(\Delta t)
Bakover-Euler11+2s\dfrac{1}{1+2s}ubetingetO(Δt)O(\Delta t)
Crank–Nicolson1s1+s\dfrac{1-s}{1+s}ubetingetO(Δt2)O(\Delta t^2)

Crank–Nicolson er den eneste som har begge deler.
Ubetinget stabilitet

Et skjema er ubetinget stabilt dersom ξ1|\xi| \le 1 for alle bølgelengder og alle valg av Δt\Delta t og hh — altså uten noen betingelse som knytter de to sammen.

Både bakover-Euler og Crank–Nicolson er ubetinget stabile. Det eksplisitte skjemaet er betinget stabilt, med betingelsen r12r \le \tfrac12.

Hva det betyr i praksis: du velger tidssteget etter hvor nøyaktig du vil ha svaret, ikke etter hva skjemaet tåler. Det er nettopp den friheten det eksplisitte skjemaet ikke gir.

Stabilitetsargumentet må kunnes — formelarket har ingen stabilitetsanalyse.

Ordenen til Crank–Nicolson
Avkuttingsfeilen er

τ=O(Δt2)+O(h2),\tau = O(\Delta t^2) + O(h^2),

altså andre orden i begge retninger.

Sammenlign med det eksplisitte skjemaet, som er O(Δt)+O(h2)O(\Delta t) + O(h^2). Den ekstra ordenen i tid kommer av at trapesregelen er symmetrisk om midtpunktet tn+1/2t_{n+1/2} — samme symmetriargument som i kap. 8.1: symmetriske formler får en orden gratis.

Konsekvensen er praktisk: for å halvere feilen trenger du bare å redusere Δt\Delta t med en faktor 2\sqrt 2, ikke med en faktor 2.

✏️Samme $r$, to skjemaer: det ene gir mening, det andre ikke

Kjør både det eksplisitte skjemaet og Crank–Nicolson på hattefunksjonen fra eksempel 1, med h=0,25h = 0{,}25, Δt=0,0625\Delta t = 0{,}0625, altså r=1r = 1. Sammenlign fire tidssteg.

Det eksplisitte skjemaet med r=1r = 1. Formelen er Uin+1=Uin+(Ui+1n2Uin+Ui1n)U_i^{n+1} = U_i^n + \left(U_{i+1}^n - 2U_i^n + U_{i-1}^n\right), som forenkles til

Uin+1=Ui+1nUin+Ui1n.U_i^{n+1} = U_{i+1}^n - U_i^n + U_{i-1}^n.

Regn radene (alle randverdier er 0):

nnU1U_1U2U_2U3U_3maks
00,250,500,250,50
10,2500,250,25
20,25-0{,}250,500,25-0{,}250,50
30,751,00-1{,}000,751,00
41,75-1{,}752,501,75-1{,}752,50

Regn med: U21=0,250,5+0,25=0U_2^1 = 0{,}25 - 0{,}5 + 0{,}25 = 0. U12=00,25+0=0,25U_1^2 = 0 - 0{,}25 + 0 = -0{,}25. U23=0,250,5+0,25U_2^3 = 0{,}25 - 0{,}5 + 0{,}25 … nei, fra rad 2: U23=U32U22+U12=0,250,50,25=1,00U_2^3 = U_3^2 - U_2^2 + U_1^2 = -0{,}25 - 0{,}5 - 0{,}25 = -1{,}00. Og videre.
Se hva som skjer. Allerede på rad 2 er det negative temperaturer i en oppgave der all starttemperatur var positiv og randen holdes på null. På rad 4 veksler verdiene mellom 1,75-1{,}75 og +2,50+2{,}50, og de vokser. Det er sagtannmoden fra kap. 8.2, og den vokser med faktoren 14r=3|1-4r| = 3 per steg.
Crank–Nicolson med samme r=1r = 1, fra eksempel 1:
nnU1U_1U2U_2eksakt u(0,5)u(0{,}5)
00,2500000,5000000,500000
10,1785710,2142860,218883
20,0867350,1326530,118025
30,0502920,068513

Alt synker, alt er positivt, og verdiene ligger nær fasiten. Samme steglengder, samme regnearbeid per punkt — helt ulikt resultat.
Det er dette som menes med at ubetinget stabilitet er verdt prisen av å løse et system. Prisen er et 3×33\times 3-system per tidssteg. Gevinsten er at svaret i det hele tatt betyr noe.

En ærlig nyansering du bør ha med i en drøftingsoppgave: Crank–Nicolson er stabilt for enhver rr, men det er ikke det samme som at store rr er lurt. Ser du på forsterkningsfaktoren for sagtannmoden (s=2rs = 2r), er

ξ=12r1+2r,\xi = \frac{1-2r}{1+2r},

som går mot 1-1 når rr blir stor. Ved r=50r = 50 er ξ=0,980\xi = -0{,}980: den moden dør knapt ut, og den skifter fortegn hvert steg. Løsningen sprenger ikke, men den kan få små, langlevde svingninger som ikke finnes i virkeligheten — særlig rett etter en brå start. Bakover-Euler har ikke det problemet (ξ>0\xi > 0 alltid), men er til gjengjeld bare førsteordens. Ingen av metodene er best på alt.

📝Oppgave 4
a) Vis at forsterkningsfaktoren til Crank–Nicolson er ξ=1s1+s\xi = \dfrac{1-s}{1+s} med s=2rsin2(βh/2)s = 2r\sin^2(\beta h/2).
b) Vis at ξ1|\xi| \le 1 for alle s0s \ge 0.
c) Hva går ξ\xi mot når rr \to \infty for sagtannmoden, og hva betyr det praktisk?
📝Oppgave 5

Sammenlign de tre skjemaene for varmelikningen på et bestemt problem: h=0,1h = 0{,}1, c2=1c^2 = 1, og du skal regne fram til t=0,5t = 0{,}5 med en nøyaktighet i tid som svarer til Δt=0,02\Delta t = 0{,}02.

a) Hvor mange tidssteg trenger Crank–Nicolson?
b) Hvor mange trenger det eksplisitte skjemaet, når stabiliteten er tatt hensyn til?
c) Drøft kort hvilket skjema du ville valgt.

Løkke 4 — Å løse systemet, og når det lønner seg (~13 min)

Det siste som gjenstår, er å se på hva «løs systemet» faktisk koster — og på et par ærlige forbehold.

Thomas-algoritmen for tridiagonale systemer

Gauss-eliminasjon som utnytter at bare tre diagonaler er fylt. To gjennomløp:

1. Framover: eliminer under diagonalen, én rad om gangen. Hver rad har bare ett element å eliminere.
2. Bakover: finn UN1U_{N-1} fra siste likning, og sett inn oppover.

Kostnaden er omtrent 8m8m operasjoner for mm ukjente — lineært, ikke kubisk. En full Gauss-eliminasjon ville krevd 23m3\tfrac23m^3.

På eksamen løser du systemet for hånd, med to eller tre ukjente, og da er innsetting raskest. Algoritmen er verdt å kjenne til for drøftingsspørsmål om kostnad, men du blir ikke bedt om å utføre den. Den beslektede metoden LU-faktorisering står på formelarket som beredskap, uten å ha egen kapittelkjede i denne boka.

Når lønner implisitt seg?

Regelen er enkel: sammenlign det tidssteget nøyaktigheten krever med det tidssteget stabiliteten tillater.

- Er de omtrent like store, bruk det eksplisitte skjemaet. Det er enklere og billigere per steg.
- Krever stabiliteten et mye mindre tidssteg enn nøyaktigheten, bruk Crank–Nicolson.

Det andre skjer alltid når gitteret forfines, fordi stabilitetsgrensen Δth2/(2c2)\Delta t \le h^2/(2c^2) krymper som h2h^2 mens nøyaktighetskravet bare krymper som hh eller h2h^2 i én potens av gangen.

Tommelfingerregelen: fint gitter, lang kjøring eller stor diffusivitet \Rightarrow implisitt.

Svingninger ved stor rr

Crank–Nicolson er stabilt for enhver rr, men forsterkningsfaktoren for de korteste bølgene er negativ når s>1s > 1, altså når 2rsin2(βh/2)>12r\sin^2(\beta h/2) > 1.

Negativ ξ\xi betyr at moden skifter fortegn for hvert tidssteg. Med stor rr er ξ|\xi| nær 1, så svingningen dør knapt ut.

Når merkes det? Særlig når startdataene har et sprang eller et knekkpunkt, for da er de korteste bølgene godt representert. Symptomet er små krusninger nær spranget som blir stående.

Botemidlene er å velge et mindre tidssteg, eller å ta de første par stegene med bakover-Euler (som har ξ>0\xi > 0 alltid) og deretter bytte. Det siste kalles Rannacher-oppstart og er utenfor pensum — men det er verdt å vite at fenomenet har et navn og en kur.

Matrisen er den samme hele veien

I AUn+1=bnA\mathbf U^{n+1} = \mathbf b^n avhenger AA bare av rr — og rr er konstant gjennom kjøringen. Bare høyresiden endres fra steg til steg.

Praktisk konsekvens: eliminasjonen gjøres én gang, og hvert tidssteg koster bare innsetting fram og tilbake. Det halverer omtrent kostnaden per steg.

Dette er et poeng verdt å nevne i en drøftingsoppgave om regnearbeid, og det er en av grunnene til at implisitte metoder er så mye brukt i praksis.

Skjemaet på andre problemer

Crank–Nicolson er ikke bundet til varmelikningen. Samme grep — trapesregelen i tid, sentraldifferanse i rom — brukes på

- likninger med et kildeledd ut=c2uxx+f(x,t)u_t = c^2u_{xx} + f(x,t), der ff midles over de to tidsnivåene;
- varierende koeffisient ut=(a(x)ux)xu_t = \left(a(x)u_x\right)_x, som gir andre tall på diagonalene;
- ikke-homogene randbetingelser, som gir randbidrag i b\mathbf b.

Matrisen forblir tridiagonal i alle tilfellene, fordi stensilen er den samme. Det er derfor metoden er så mye brukt: oppskriften endrer seg ikke, bare tallene.

📝Oppgave 6
P
Bruk Crank–Nicolson på ut=uxxu_t = u_{xx}[0,1][0,1] med

u(0,t)=0,u(1,t)=2,u(x,0)=0  for 0x<1.u(0,t) = 0, \qquad u(1,t) = 2, \qquad u(x,0) = 0 \ \text{ for } 0 \le x < 1.

Gitteret er h=13h = \tfrac13 (to indre punkter) og r=1r = 1.

a) Sett opp systemet for det første tidssteget, med randbidragene på riktig plass.
b) Løs det.
c) Hva blir løsningen når tt \to \infty, og stemmer retningen på svaret i b) med det?

📝Oppgave 7

Vis at bakover-Euler-skjemaet rUi1n+1+(1+2r)Uin+1rUi+1n+1=Uin-rU_{i-1}^{n+1} + (1+2r)U_i^{n+1} - rU_{i+1}^{n+1} = U_i^n oppfyller et maksimumsprinsipp for enhver r>0r > 0: ingen indre verdi på det nye nivået kan være større enn den største verdien blant UinU_i^n og randverdiene på nivå n+1n+1.

Begrepsbank

Flashcard- og repetisjonsstoff — hopp trygt over ved førstegangslesing. Boksene under samler resten av kapitlets begreper som egne kort.

Theta-skjemaet — de tre metodene som én familie
Alle tre skjemaene i dette og forrige kapittel er samme formel med én parameter θ[0,1]\theta \in [0,1]:

Uin+1UinΔt=c2h2(θδ2Uin+1+(1θ)δ2Uin).\frac{U_i^{n+1}-U_i^n}{\Delta t} = \frac{c^2}{h^2}\left(\theta\,\delta^2U_i^{n+1} + (1-\theta)\,\delta^2U_i^{n}\right).

- θ=0\theta = 0: eksplisitt, betinget stabilt, O(Δt)O(\Delta t).
- θ=12\theta = \tfrac12: Crank–Nicolson, ubetinget stabilt, O(Δt2)O(\Delta t^2).
- θ=1\theta = 1: bakover-Euler, ubetinget stabilt og monotont, O(Δt)O(\Delta t).

Det generelle stabilitetskravet er r12(12θ)r \le \dfrac{1}{2(1-2\theta)} for θ<12\theta < \tfrac12, og ingen betingelse for θ12\theta \ge \tfrac12. Halvveis er altså nøyaktig der stabilitetsgrensen forsvinner — og det er ikke tilfeldig, det er der skjemaet blir symmetrisk om midtpunktet i tid.

Diagonaldominans

En matrise er diagonaldominant når hvert diagonalelement er større i tallverdi enn summen av tallverdiene til de andre elementene i samme rad.

For Crank–Nicolson-matrisen: 2+2r>r+r=2r|2+2r| > |-r|+|-r| = 2r, som holder for alle r>0r > 0. For bakover-Euler: 1+2r>2r|1+2r| > 2r, samme sak.

Hvorfor det er godt nytt: en diagonaldominant tridiagonal matrise er alltid inverterbar, systemet har entydig løsning, og Gauss-eliminasjon kan kjøres uten radbytte og uten å dele på noe nær null. Det er derfor implisitte varmeskjemaer er så robuste i praksis.

Midtpunktet tn+1/2t_{n+1/2}
Crank–Nicolson kan leses som en formel sentrert i midt mellom de to tidsnivåene:

Uin+1UinΔtut ⁣(xi, tn+1/2),\frac{U_i^{n+1}-U_i^n}{\Delta t} \approx u_t\!\left(x_i,\ t_{n+1/2}\right),

der venstre side er en sentral differanse om tn+1/2t_{n+1/2} med steglengde Δt/2\Delta t/2 hver vei — og høyre side er gjennomsnittet av romleddet på de to nivåene, som tilnærmer verdien i midten.

Det er hele forklaringen på andre orden i tid. Symmetri om midtpunktet gir en orden gratis, nøyaktig som for sentraldifferansen i kap. 8.1.

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.