Tilbake
8.2

8.2 Eksplisitt skjema for varmelikningen og stabilitet $r\le\tfrac12$

Det eksplisitte (forward-Euler) skjemaet for varmelikningen, ett gitterpunkt for hånd, og stabilitetskravet $r\le\tfrac12$.

60 min
13 oppgaver
Eksplisitt skjema for varmelikningenstabilitet $r\le\tfrac12$
Din fremgang i kapitlet
0 / 13 oppgaver
Forkunnskaper: kap. 8.1 — differansekvotientene og ordensbegrepet. Du trenger også kap. 5.1 og kap. 5.2: varmelikningen, hva rand- og initialbetingelser er, og den analytiske løsningen vi skal måle det numeriske svaret mot i løkke 4.

Sist du var her. De tre tingene du kommer til å bruke i hver eneste oppgave i dette kapitlet:

u(xi)Ui+12Ui+Ui1h2u''(x_i) \approx \frac{U_{i+1} - 2U_i + U_{i-1}}{h^2}

Den andre sentraldifferansen fra kap. 8.1. Mønsteret 1,2,11, -2, 1 og nevneren h2h^2.

ut=c2uxxu_t = c^2 u_{xx}

Varmelikningen fra kap. 5.1, med diffusivitetskonstanten c2c^2.

u(x,t)=n=1BnsinnπxLec2(nπ/L)2tu(x,t) = \sum_{n=1}^{\infty} B_n \sin\frac{n\pi x}{L}\,e^{-c^2(n\pi/L)^2 t}

Den analytiske løsningen ved kalde ender fra kap. 5.2. Den er fasiten vi kontrollerer mot til slutt — og for startdata u(x,0)=sin(πx/L)u(x,0) = \sin(\pi x/L) er den bare det ene leddet sin(πx/L)ec2π2t/L2\sin(\pi x/L)\,e^{-c^2\pi^2t/L^2}.

Fra tidligere matematikkemner trengs ikke noe utover vanlig regning. Kapitlet er forutsetning for kap. 8.3 og kap. 8.4.

Når separasjon av variable ikke rekker til

I Del 5 løste du varmelikningen eksakt. Metoden var vakker, men den hadde tre forutsetninger: likningen måtte være homogen, randbetingelsene måtte være av en av noen få snille typer, og startdataene måtte la seg skrive som en Fourier-rekke du klarte å regne ut.

Ta bort én av dem, og separasjon av variable stopper. En stang med varierende materialtykkelse, en varmekilde som slås av og på, en rand der temperaturen måles i stedet for å være gitt ved en formel — ingen av delene lar seg separere.

Differansemetoden bryr seg ikke. Den erstatter de deriverte med tall fra nabopunkter, og så regner den seg framover i tid, rad for rad. Den virker på alt.

Men den har en pris, og prisen er dette kapitlets hovedpoeng. Velger du tidssteget for stort, gir metoden ikke et litt unøyaktig svar — den gir et svar som sprenger. Etter noen titalls steg står det tall i millionklassen der temperaturen skulle vært en halv grad, og de veksler mellom pluss og minus fra gitterpunkt til gitterpunkt. Grensen mellom «virker fint» og «totalhavari» er én eneste ulikhet:

r12.r \le \tfrac12.

Kapitlet gjør fire ting: setter opp gitteret i rom og tid, utleder skjemaet og regner et gitterpunkt for hånd, viser hvor grensen r12r \le \tfrac12 kommer fra og hva som skjer på feil side av den, og sammenligner til slutt det numeriske svaret med den eksakte løsningen fra Del 5.

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å 60 minutter gjelder kjernestoffet, ikke pugging av boksene.

Løkke 1 — To akser, to steglengder, én notasjon (~14 min)

Den store forskjellen fra kap. 8.1 er at vi nå har to variabler: posisjonen xx og tiden tt. Det betyr to steglengder og to indekser, og det er her de fleste indeksfeilene oppstår.

Gitteret i rom og tid
Del rommet [0,L][0,L] i NN like biter og tiden i skritt av lengde Δt\Delta t:

xi=ih,h=LN,i=0,1,,N;tn=nΔt,n=0,1,2,x_i = ih, \quad h = \frac{L}{N}, \quad i = 0,1,\dots,N; \qquad t_n = n\,\Delta t, \quad n = 0,1,2,\dots

Resultatet er et rutenett av punkter (xi,tn)(x_i, t_n). Vi kjenner verdiene på startraden (n=0n = 0, fra initialbetingelsen) og langs de to sidekantene (i=0i = 0 og i=Ni = N, fra randbetingelsene). Alt annet skal regnes ut.

Rekkefølgen er avgjørende: vi fyller inn én rad om gangen, nedenfra og opp. Rad n+1n+1 regnes helt ut fra rad nn.

Gitterverdien UinU_i^n
Tilnærmingen til den eksakte løsningen i gitterpunktet:

Uinu(xi,tn).U_i^n \approx u(x_i, t_n).

Den øvre indeksen nn er tidsnivå, ikke en potens. Ui2U_i^2 betyr «verdien i punkt ii på tidsnivå 2», ikke «UiU_i i annen». Notasjonen er standard i hele faget, og den er kort — men den må leses riktig.

Nedre indeks er rom, øvre er tid. En huskeregel: nedre indeks står lavt, som xx-aksen; øvre står høyt, som tiden som vokser oppover.

Tidssteget Δt\Delta t — og hva formelarket kaller det

Avstanden mellom to tidsnivåer, Δt=tn+1tn\Delta t = t_{n+1} - t_n.

Merk denne notasjonskollisjonen — den er verdt tretti sekunder nå og et helt delpunkt på eksamen. Det utdelte formelarket bruker bokstaven kk for tidssteget og skriver stabilitetstallet som r=k/h2r = k/h^2. Denne boka skriver i stedet Δt\Delta t og r=Δt/h2r = \Delta t/h^2, av én grunn: i kap. 5.1 er kk separasjonskonstanten, og to helt ulike størrelser med samme navn i samme emne er en oppskrift på feil.

Når du åpner formelarket på eksamen og ser en kk i differanseavsnittet, er det altså tidssteget — det du her har lært å kalle Δt\Delta t. Skriv gjerne den oversettelsen på ditt eget A5-ark.

Forlengs differanse i tid
Tidsderiverten tilnærmes med den forlengs kvotienten fra kap. 8.1:

ut(xi,tn)Uin+1UinΔt.u_t(x_i, t_n) \approx \frac{U_i^{n+1} - U_i^n}{\Delta t}.

Hvorfor forlengs og ikke sentral? Fordi forlengs er den eneste som inneholder nøyaktig én ukjent — verdien på det neste tidsnivået. Det er nettopp det som gjør skjemaet eksplisitt: du kan løse for Uin+1U_i^{n+1} direkte, uten å løse noe likningssystem.

Prisen er ordenen. Forlengs er bare O(Δt)O(\Delta t), mens romdelen er O(h2)O(h^2). Denne ubalansen er hele motivasjonen for Crank–Nicolson i kap. 8.3.

📝Oppgave 1

(Innstegsoppgave — ren avlesning.) Et gitter for varmelikningen på [0,1][0,1] har N=5N = 5 delintervall og tidssteg Δt=0,008\Delta t = 0{,}008.

a) Hva er romsteget hh?
b) Skriv opp koordinatene (xi,tn)(x_i, t_n) til gitterpunktet U32U_3^2.
c) Hvor mange verdier på rad n=0n = 0 er ukjente, når begge randbetingelsene er gitt?

Løkke 2 — Skjemaet, og ett gitterpunkt for hånd (~16 min)

Nå setter vi de to kvotientene inn i varmelikningen og løser for den ene ukjente. Det er tre linjers algebra, og de tre linjene må kunnes — de står ikke på formelarket.

Utledningen. Varmelikningen er

ut=c2uxx.u_t = c^2 u_{xx}.

Sett inn forlengs differanse i tid på venstre side og den andre sentraldifferansen i rom på høyre side, begge i punktet (xi,tn)(x_i, t_n):

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

Ganger vi opp med Δt\Delta t og flytter UinU_i^n over, står det

Uin+1=Uin+c2Δth2(Ui+1n2Uin+Ui1n).U_i^{n+1} = U_i^n + \frac{c^2\Delta t}{h^2}\left(U_{i+1}^n - 2U_i^n + U_{i-1}^n\right).

Brøken foran parentesen får sitt eget navn, og hele resten av delen handler om den.

Intuisjon: uttrykket i parentesen er positivt når punktet ligger lavere enn gjennomsnittet av naboene, altså i en grop. Da legges det til noe, og verdien stiger. Ligger punktet på en topp, er parentesen negativ, og verdien synker. Skjemaet gjør nøyaktig det varme gjør: jevner ut topper og groper. Og rr bestemmer hvor mye det jevner ut per skritt.

Stabilitetstallet rr
Den dimensjonsløse kombinasjonen av de to steglengdene:

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

Er c2=1c^2 = 1, forenkles den til r=Δt/h2r = \Delta t/h^2.

Legg merke til h2h^2, ikke hh. Halverer du romsteget og vil holde rr fast, må tidssteget deles på fire. Det er den enkeltopplysningen som gjør det eksplisitte skjemaet dyrt i praksis, og den er verdt å skrive på A5-arket.

To feller som begge er dokumentert i løsningsforslagene: å glemme c2c^2 når diffusiviteten ikke er 1, og å bytte om teller og nevner slik at det blir h2/Δth^2/\Delta t.

Det eksplisitte skjemaet
Formelen som regner hele den nye raden ut av den gamle:

Uin+1=Uin+r(Ui+1n2Uin+Ui1n),i=1,,N1.U_i^{n+1} = U_i^n + r\left(U_{i+1}^n - 2U_i^n + U_{i-1}^n\right), \qquad i = 1, \dots, N-1.

Den kalles eksplisitt fordi den nye verdien står alene på venstre side: ingen likningssystem, bare innsetting. Det er samme grep som ett skritt med Euler forover, brukt på hvert romlig punkt samtidig.

Oppsettet må kunnes — formelarket har differansekvotientene, men ikke det ferdige skjemaet.

Randverdiene U0n+1U_0^{n+1} og UNn+1U_N^{n+1} settes ikke av formelen; de leses av randbetingelsen. Formelen gjelder bare de indre punktene.

Vektformen: en veid middelverdi
Samler du leddene etter hvilken gammel verdi de tilhører, blir skjemaet

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

De tre vektene rr, 12r1-2r, rr summerer seg alltid til 1. Den nye verdien er altså et veid gjennomsnitt av tre gamle verdier — forutsatt at alle tre vektene er positive.

Denne omskrivingen er ikke pynt: den er det korteste stabilitetsbeviset som finnes, og du ser det i løkke 3. Er 12r01 - 2r \ge 0, er alle vektene mellom 0 og 1, og et veid gjennomsnitt kan aldri bli større enn den største av verdiene det gjennomsnittliggjør.

✏️Ett gitterpunkt for hånd — hele regningen skrevet ut
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}

Bruk h=0,25h = 0{,}25 og Δt=0,025\Delta t = 0{,}025. Regn ut hele raden n=1n = 1, og deretter U22U_2^2.

Steg 1 — regn ut rr og sjekk stabiliteten med en gang. Her er c2=1c^2 = 1, så

r=c2Δth2=0,0250,0625=0,4.r = \frac{c^2\,\Delta t}{h^2} = \frac{0{,}025}{0{,}0625} = 0{,}4.

Siden 0,4120{,}4 \le \tfrac12 er skjemaet stabilt. Dette er første linje i enhver besvarelse i sjangeren — også når oppgaven ikke spør eksplisitt.

Steg 2 — sett opp startraden. Gitterpunktene er xi=0; 0,25; 0,5; 0,75; 1x_i = 0;\ 0{,}25;\ 0{,}5;\ 0{,}75;\ 1, og initialfunksjonen gir

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 3 — bruk skjemaet på hvert indre punkt. Med r=0,4r = 0{,}4:

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

i=1i = 1:

U11=0,25+0,4(0,52(0,25)+0)=0,25+0,4(0)=0,25.U_1^1 = 0{,}25 + 0{,}4\left(0{,}5 - 2(0{,}25) + 0\right) = 0{,}25 + 0{,}4(0) = 0{,}25.

i=2i = 2:

U21=0,5+0,4(0,252(0,5)+0,25)=0,5+0,4(0,5)=0,50,2=0,3.U_2^1 = 0{,}5 + 0{,}4\left(0{,}25 - 2(0{,}5) + 0{,}25\right) = 0{,}5 + 0{,}4(-0{,}5) = 0{,}5 - 0{,}2 = 0{,}3.

i=3i = 3: ved symmetri lik U11U_1^1, men vi skriver den ut:

U31=0,25+0,4(02(0,25)+0,5)=0,25+0,4(0)=0,25.U_3^1 = 0{,}25 + 0{,}4\left(0 - 2(0{,}25) + 0{,}5\right) = 0{,}25 + 0{,}4(0) = 0{,}25.

Randverdiene beholdes: U01=U41=0U_0^1 = U_4^1 = 0. Rad 1 er altså

(0; 0,25; 0,3; 0,25; 0).\left(0;\ 0{,}25;\ 0{,}3;\ 0{,}25;\ 0\right).

Steg 4 — ett skritt til, for U22U_2^2.

U22=0,3+0,4(0,252(0,3)+0,25)=0,3+0,4(0,1)=0,30,04=0,26.U_2^2 = 0{,}3 + 0{,}4\left(0{,}25 - 2(0{,}3) + 0{,}25\right) = 0{,}3 + 0{,}4(-0{,}1) = 0{,}3 - 0{,}04 = 0{,}26.

Steg 5 — kontroller at svaret er fornuftig. Tre ting å se etter, og alle tre gir uttelling når de nevnes:

1. Toppen synker: 0,50,30,260{,}5 \to 0{,}3 \to 0{,}26. Varme sprer seg, temperaturen jevner seg ut. ✓
2. Ingen verdi er større enn den største startverdien (0,50{,}5) eller mindre enn den minste (00). Det er nettopp det den veide middelverdien garanterer når r12r \le \tfrac12. ✓
3. Symmetrien er bevart: U1n=U3nU_1^n = U_3^n på hver rad, akkurat som startdataene er symmetriske om x=12x = \tfrac12. Brytes symmetrien, er det en regnefeil — eller en kodefeil, som du skal se i kap. 8.4. ✓

Merk at U1U_1 ikke endret seg i første skritt. Startprofilen er en rett linje mellom x0x_0 og x2x_2, og en rett linje har krumning null: parentesen ble eksakt 0. Bare knekkpunktet på toppen «vet» at noe skal skje til å begynne med. Det er en pen liten illustrasjon av at det er uxxu_{xx} — krumningen — som driver hele prosessen.

📝Oppgave 2

Regn ut rr og avgjør om det eksplisitte skjemaet er stabilt i hvert tilfelle.

a) ut=uxxu_t = u_{xx}, h=0,1h = 0{,}1, Δt=0,004\Delta t = 0{,}004.
b) ut=uxxu_t = u_{xx}, h=0,05h = 0{,}05, Δt=0,002\Delta t = 0{,}002.
c) ut=4uxxu_t = 4u_{xx}, h=0,2h = 0{,}2, Δt=0,002\Delta t = 0{,}002.

📝Oppgave 3
P
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

u(x,0)=x(1x).u(x,0) = x(1-x).

Bruk h=0,25h = 0{,}25 og Δt=0,0125\Delta t = 0{,}0125.

a) Regn ut rr og avgjør om skjemaet er stabilt.
b) Regn ut hele raden n=1n = 1.
c) Regn ut U22U_2^2.

Løkke 3 — Grensen r12r \le \tfrac12, og hva som skjer på feil side (~16 min)

— naturlig pausepunkt —

Nå kommer kapitlets viktigste avsnitt. Vi skal vise nøyaktig hvor grensen kommer fra, og så se hva som skjer når man bommer på den med to hundredeler.

Stabilitet

Et skjema er stabilt dersom feil som allerede finnes i tallene — avrundingsfeil, målefeil i startdataene, avkuttingsfeil fra tidligere skritt — ikke vokser når du regner videre.

Merk hva stabilitet ikke er: det er ikke det samme som nøyaktighet. Et stabilt skjema kan gi et unøyaktig svar. Men et ustabilt skjema gir før eller siden et svar uten mening, uansett hvor små steg du tar i rommet.

Sammenhengen med kap. 8.1: konsistens sier at avkuttingsfeilen går mot null; stabilitet sier at feilene ikke forsterkes underveis. Begge kreves for at den beregnede løsningen skal nærme seg den eksakte.

Argument 1 — den veide middelverdien (det korteste og det mest overbevisende).

Skriv skjemaet på vektform:

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

Anta r12r \le \tfrac12. Da er 12r01 - 2r \ge 0, og alle tre vektene er ikke-negative og summerer seg til 1. La MM være den største absoluttverdien på rad nn. Da er

Uin+1rUi1n+(12r)Uin+rUi+1n(r+12r+r)M=M.\left|U_i^{n+1}\right| \le r|U_{i-1}^n| + (1-2r)|U_i^n| + r|U_{i+1}^n| \le \left(r + 1 - 2r + r\right)M = M.

Maksimalverdien kan altså aldri vokse. Det gjelder rad etter rad, i det uendelige. Ingenting kan sprenge.

Intuisjon: et gjennomsnitt av tre tall ligger alltid mellom det minste og det største av dem. Så lenge alle vektene er positive, er den nye verdien fanget mellom naboene sine — nøyaktig slik ekte temperatur oppfører seg.

Og hva skjer når r>12r > \tfrac12? Da er 12r<01 - 2r < 0. Midtvekten er negativ, det er ikke lenger et gjennomsnitt, og garantien er borte. At garantien forsvinner er i seg selv ikke et bevis på at noe går galt — så vi viser at det faktisk gjør det.

Argument 2 — sagtannmoden, som viser at grensen er skarp.

Se på et mønster som veksler mellom pluss og minus fra gitterpunkt til gitterpunkt:

Uin=(1)iAn.U_i^n = (-1)^i A_n.

Dette er den «verste» formen data kan ha — den kortest mulige bølgen gitteret kan bære. Sett den inn i skjemaet:

Uin+1=r(1)i1An+(12r)(1)iAn+r(1)i+1An.U_i^{n+1} = r(-1)^{i-1}A_n + (1-2r)(-1)^iA_n + r(-1)^{i+1}A_n.

Både (1)i1(-1)^{i-1} og (1)i+1(-1)^{i+1} er lik (1)i-(-1)^i, så

Uin+1=(1)iAn(r+12rr)=(1)iAn(14r).U_i^{n+1} = (-1)^iA_n\left(-r + 1 - 2r - r\right) = (-1)^i A_n\,(1 - 4r).

Amplituden ganges altså med 14r1-4r for hvert tidssteg:

An+1=(14r)AnAn=(14r)nA0.A_{n+1} = (1-4r)A_n \quad\Longrightarrow\quad A_n = (1-4r)^n A_0.

Dette holder seg begrenset hvis og bare hvis 14r1|1-4r| \le 1, altså

114r10r12.-1 \le 1 - 4r \le 1 \quad\Longleftrightarrow\quad 0 \le r \le \tfrac12.

Er rr større, vokser sagtannmønsteret eksponentielt — og det gjør det uansett hvor pen den eksakte løsningen er, fordi avrundingsfeilene i maskinen alltid inneholder litt av det verste mønsteret.

Den fulle analysen ser på alle bølgelengder, ikke bare den korteste. Setter du inn Uin=ξneiβxiU_i^n = \xi^n e^{\mathrm{i}\beta x_i}, får du forsterkningsfaktoren

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

Den er mest negativ når sin2=1\sin^2 = 1, altså for sagtannmoden — så den ene moden vi regnet på, er nettopp den som avgjør. Kravet ξ1|\xi| \le 1 for alle β\beta gir samme svar: r12r \le \tfrac12.

Stabilitetskravet for det eksplisitte skjemaet
Skjemaet er stabilt hvis og bare hvis

r=c2Δth212.r = \frac{c^2\,\Delta t}{h^2} \le \frac{1}{2}.

Ekvivalent, løst for tidssteget:

Δth22c2.\Delta t \le \frac{h^2}{2c^2}.

Dette står ikke noe sted på det utdelte formelarket — det må kunnes. Det er én av de tre–fire formlene som er verdt plassen på ditt eget A5-ark.

Betingelsen kalles ofte en betinget stabilitet: skjemaet er stabilt, men bare på betingelse av at tidssteget er lite nok. Kontrasten er Crank–Nicolson i kap. 8.3, som er stabilt uansett.

✏️Hva ustabilitet faktisk ser ut som — en kjøring på begge sider av grensen

Løs ut=uxxu_t = u_{xx}[0,1][0,1] med kalde ender og en bratt starttemperatur: u=1u = 1 i alle indre punkter, 00 på randen. Bruk h=0,1h = 0{,}1 og kjør skjemaet i 60 tidssteg med r=0,50r = 0{,}50, r=0,52r = 0{,}52 og r=0,60r = 0{,}60. Hva skjer?

Steg 1 — hva teorien forutsier. Gitteret har N=10N = 10 delintervall, og den mest oscillerende moden det kan bære, er n=9n = 9. Forsterkningsfaktoren for den er

ξ=14rsin2 ⁣(9πh2)=14rsin2(0,45π).\xi = 1 - 4r\sin^2\!\left(\frac{9\pi h}{2}\right) = 1 - 4r\sin^2(0{,}45\pi).

Med sin2(0,45π)=0,97553\sin^2(0{,}45\pi) = 0{,}97553:

rrξ\xi for den verste modenvekst per stegetter 60 steg
0,500,951-0{,}9510,9510,0490{,}049 (dør ut)
0,521,029-1{,}0291,0295,65{,}6 (vokser)
0,601,341-1{,}3411,3414,51074{,}5\cdot 10^{7} (eksploderer)

Steg 2 — den faktiske kjøringen. Kjørt med skjemaet, ikke med formelen:
steg nnr=0,50r = 0{,}50r=0,52r = 0{,}52r=0,60r = 0{,}60
0111
100,7810,7881,248
200,4740,50011,61
400,1740,2563,991033{,}99\cdot 10^{3}
600,06370,2321,421061{,}42\cdot 10^{6}

Tallene er største absoluttverdi i gitteret.
Steg 3 — les tabellen.

Ved r=0,50r = 0{,}50 synker maksimalverdien jevnt, akkurat slik varme skal oppføre seg. Den eksakte løsningen ved t=0,30t = 0{,}30 er omtrent 0,060{,}06; skjemaet gir 0,0640{,}064.

Ved r=0,52r = 0{,}52 — bare to hundredeler over grensen — synker verdien først, helt til den snur ved omtrent 40 steg og begynner å vokse igjen. Det er den farlige situasjonen: de første radene ser helt normale ut, så du oppdager ikke feilen med det samme.
Ved r=0,60r = 0{,}60 er det ingen tvil. Etter 60 steg står det 1,41{,}4 millioner der temperaturen skulle vært 0,020{,}02, og fortegnet veksler fra gitterpunkt til gitterpunkt.
Steg 4 — hva som er lærdommen. Ustabilitet er ikke unøyaktighet. Skjemaet gir ikke et litt for stort svar; det gir et svar som ikke har noe med varme å gjøre i det hele tatt. En temperatur som veksler mellom +106+10^6 og 106-10^6 mellom nabopunkter er ikke en dårlig tilnærming — den er søppel.
Og det er derfor stabilitetssjekken hører hjemme i første linje. Regn ut rr, sammenlign med 12\tfrac12, og skriv konklusjonen ned før du regner et eneste gitterpunkt. Det er ett strekpunkt i besvarelsen, og det er et av de sikreste delpoengene i sjangeren.

📝Oppgave 4
a) Finn det største tidssteget som gir et stabilt eksplisitt skjema for ut=uxxu_t = u_{xx}[0,1][0,1] med h=0,05h = 0{,}05.
b) Samme spørsmål for ut=9uxxu_t = 9u_{xx} med h=0,05h = 0{,}05.
c) Hvor mange tidssteg trengs i b) for å komme fram til t=1t = 1?
📝Oppgave 5

Vis at sagtannmønsteret Uin=(1)iAnU_i^n = (-1)^i A_n forsterkes med faktoren 14r1-4r per tidssteg, og bruk det til å avgjøre hva som skjer i de tre tilfellene r=14r = \tfrac14, r=12r = \tfrac12 og r=1r = 1.

Løkke 4 — Kontroll mot den eksakte løsningen fra Del 5 (~14 min)

Det sterkeste du kan gjøre med et numerisk svar, er å måle det mot et eksakt svar. For varmelikningen med kalde ender har vi det: kap. 5.2 ga hele løsningen som en Fourier-rekke, og for startdata u(x,0)=sinπxu(x,0) = \sin\pi x er rekka bare ett ledd.

Testproblemet med kjent fasit
Problemet

ut=uxx,0<x<1,u(0,t)=u(1,t)=0,u(x,0)=sinπxu_t = u_{xx}, \quad 0 < x < 1, \qquad u(0,t) = u(1,t) = 0, \qquad u(x,0) = \sin \pi x

har den eksakte løsningen

u(x,t)=eπ2tsinπx.u(x,t) = e^{-\pi^2 t}\sin \pi x.

Hvorfor bare ett ledd: startfunksjonen er den første egenfunksjonen sin(πx/L)\sin(\pi x/L) med L=1L = 1, så alle andre Fourier-koeffisienter er null. Egenverdien er k1=π2k_1 = \pi^2, og tidsfaktoren blir ec2k1t=eπ2te^{-c^2k_1t} = e^{-\pi^2t}.

Dette er testproblemet som brukes overalt i faget, nettopp fordi fasiten er én linje. Kontroller alltid et nytt skjema mot det først.

✏️Eksamensnivå: regn tre tidssteg og sammenlign med den analytiske løsningen

Løs testproblemet ut=uxxu_t = u_{xx}, u(0,t)=u(1,t)=0u(0,t) = u(1,t) = 0, u(x,0)=sinπxu(x,0) = \sin \pi x med h=0,2h = 0{,}2 og Δt=0,01\Delta t = 0{,}01.

a) Avgjør om skjemaet er stabilt.
b) Regn ut U21U_2^1 for hånd.
c) Regn tre tidssteg og sammenlign hele raden med den eksakte løsningen u=eπ2tsinπxu = e^{-\pi^2t}\sin\pi x.
d) Forklar hvorfor avviket er som det er.

a) Stabilitet.

r=c2Δth2=0,010,04=0,2512.r = \frac{c^2\Delta t}{h^2} = \frac{0{,}01}{0{,}04} = 0{,}25 \le \tfrac12.

Skjemaet er stabilt. Vi vet nå at ingenting kommer til å sprenge, og at maksimalverdien vil synke monotont.

b) Ett gitterpunkt for hånd. Startraden er Ui0=sin(πxi)U_i^0 = \sin(\pi x_i) med xi=0; 0,2; 0,4; 0,6; 0,8; 1x_i = 0;\ 0{,}2;\ 0{,}4;\ 0{,}6;\ 0{,}8;\ 1:

U10=sin0,2π=0,587785,U20=sin0,4π=0,951057,U_1^0 = \sin 0{,}2\pi = 0{,}587785, \quad U_2^0 = \sin 0{,}4\pi = 0{,}951057,
U30=sin0,6π=0,951057,U40=sin0,8π=0,587785,U_3^0 = \sin 0{,}6\pi = 0{,}951057, \quad U_4^0 = \sin 0{,}8\pi = 0{,}587785,

og U00=U50=0U_0^0 = U_5^0 = 0.

U21=U20+r(U302U20+U10)=0,951057+0,25(0,9510571,902113+0,587785)U_2^1 = U_2^0 + r\left(U_3^0 - 2U_2^0 + U_1^0\right) = 0{,}951057 + 0{,}25\left(0{,}951057 - 1{,}902113 + 0{,}587785\right)

=0,951057+0,25(0,363271)=0,9510570,090818=0,860239.= 0{,}951057 + 0{,}25\,(-0{,}363271) = 0{,}951057 - 0{,}090818 = \boxed{0{,}860239.}

c) Tre steg mot fasiten. Kjørt videre med samme skjema, og sammenlignet med u(xi,tn)=eπ2tnsinπxiu(x_i, t_n) = e^{-\pi^2 t_n}\sin \pi x_i:

ttx=0,2x = 0{,}2x=0,4x = 0{,}4x=0,6x = 0{,}6x=0,8x = 0{,}8
0,01numerisk0,5316570,8602390,8602390,531657
0,01eksakt0,5325440,8616740,8616740,532544
0,02numerisk0,4808880,7780930,7780930,480888
0,02eksakt0,4824950,7806930,7806930,482495
0,03numerisk0,4349670,7037920,7037920,434967
0,03eksakt0,4371490,7073220,7073220,437149

Største avvik ved t=0,03t = 0{,}03 er 0,003530{,}00353, altså omtrent 0,5 %. På et gitter med bare fire indre punkter er det godt.
*d) Hvorfor avviket er som det er — og hvorfor det er nedad. Startdataene er den reneste moden som finnes, og for den kan vi regne eksakt hva skjemaet gjør. Sett Uin=ξnsin(πxi)U_i^n = \xi^n\sin(\pi x_i) inn i skjemaet; forsterkningsfaktoren blir
ξ=14rsin2 ⁣(πh2)=14(0,25)sin2(0,1π)=10,0954915=0,9045085.\xi = 1 - 4r\sin^2\!\left(\frac{\pi h}{2}\right) = 1 - 4(0{,}25)\sin^2(0{,}1\pi) = 1 - 0{,}0954915 = 0{,}9045085.
Den eksakte løsningen dempes med
eπ2Δt=e0,0986960=0,9060181e^{-\pi^2\Delta t} = e^{-0{,}0986960} = 0{,}9060181
per tidssteg. Skjemaet demper altså
litt for mye0,904510{,}90451 mot 0,906020{,}90602 — og derfor ligger alle de numeriske tallene litt under fasiten, med et avvik som vokser jevnt for hvert steg.
Kontroll: etter tre steg er 0,90450853=0,7400110{,}9045085^3 = 0{,}740011 mot e3π20,01=0,743722e^{-3\pi^2\cdot 0{,}01} = 0{,}743722. Ganget med sin0,4π=0,951057\sin 0{,}4\pi = 0{,}951057 gir det 0,7037920{,}703792 og 0,7073220{,}707322 — nøyaktig tallene i tabellen. ✓

Dette er den sterkeste kontrollen boka kan gi deg: den analytiske metoden fra Del 5 og den numeriske metoden i Del 8 svarer på nøyaktig samme spørsmål, og de svarer likt. Blir du usikker på et numerisk skjema, test det på et problem der separasjon av variable gir fasiten.

Merk hva som gir uttelling i denne oppgavetypen:* (1) rr regnet ut og sammenlignet med 12\tfrac12 først, (2) minst ett gitterpunkt ført helt ut med tall, (3) en kontroll — enten mot fasiten, mot symmetrien, eller mot at maksimalverdien synker. Fasiten alene, uten mellomregning, gir ikke full uttelling.

📝Oppgave 6

Testproblemet i eksempelet, men med h=0,25h = 0{,}25 og Δt=0,03125\Delta t = 0{,}03125.

a) Regn ut rr og avgjør stabiliteten.
b) Regn ut forsterkningsfaktoren ξ=14rsin2(πh/2)\xi = 1-4r\sin^2(\pi h/2) for grunnmoden, og sammenlign med den eksakte dempningen eπ2Δte^{-\pi^2\Delta t}.
c) Hva blir U21U_2^1?

📝Oppgave 7
P

Betrakt ut=uxxu_t = u_{xx}[0,1][0,1] med isolerte ender: ux(0,t)=ux(1,t)=0u_x(0,t) = u_x(1,t) = 0, og u(x,0)=cosπxu(x,0) = \cos \pi x.

a) Vis at den eksakte løsningen er u=eπ2tcosπxu = e^{-\pi^2t}\cos\pi x.
b) Gitteret er h=0,25h = 0{,}25, Δt=0,015625\Delta t = 0{,}015625. Regn ut rr og avgjør stabiliteten.
c) Regn ut U11U_1^1 og U21U_2^1 (de to første indre punktene) og sammenlign med de eksakte verdiene.

Randbetingelsene i randpunktene skal du ikke behandle her — de kommer i kap. 8.4. Bruk de eksakte verdiene U0n=eπ2tnU_0^n = e^{-\pi^2t_n} og U4n=eπ2tnU_4^n = -e^{-\pi^2t_n} når du trenger randverdier.

📝Oppgave 8

Et eksplisitt skjema kjøres på ut=uxxu_t = u_{xx} med h=0,1h = 0{,}1 og Δt=0,0055\Delta t = 0{,}0055[0,1][0,1] med kalde ender. Startdataene er glatte: u(x,0)=sinπxu(x,0) = \sin\pi x, altså uten noe sagtannmønster i det hele tatt.

a) Er skjemaet stabilt?
b) Vil kjøringen likevel gå galt? Begrunn.
c) Anslå hvor mange tidssteg det tar før en avrundingsfeil på 101610^{-16} i den verste moden har vokst til størrelse 1.

Begrepsbank

Flashcard- og repetisjonsstoff — hopp trygt over ved førstegangslesing. Boksene under samler resten av kapitlets begreper som egne kort. Ved førstegangslesing kan du gå rett til repetisjonsoppgavene.

Forsterkningsfaktoren ξ\xi
Faktoren en enkelt bølgekomponent ganges med for hvert tidssteg. For det eksplisitte skjemaet:

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

Her er β\beta bølgetallet: små β\beta er lange, glatte bølger, store β\beta er korte, oscillerende.

Stabilitet betyr ξ1|\xi| \le 1 for alle β\beta. Siden sin2\sin^2 ligger mellom 0 og 1, ligger ξ\xi mellom 14r1-4r og 1, og kravet blir 14r11-4r \ge -1, altså r12r \le \tfrac12.

For en enkelt diskret mode sin(nπxi/L)\sin(n\pi x_i/L) på et gitter med NN intervall er βh=nπh/L\beta h = n\pi h/L, så ξn=14rsin2(nπh/(2L))\xi_n = 1 - 4r\sin^2(n\pi h/(2L)).

Sagtannmoden

Mønsteret Ui=(1)iAU_i = (-1)^iA — den korteste bølgen et gitter i det hele tatt kan bære, med bølgelengde 2h2h.

Den er den mest utsatte moden i det eksplisitte skjemaet, og det er dens forsterkningsfaktor 14r1-4r som setter grensen r12r \le \tfrac12.

Praktisk gjenkjennelse: ser du en numerisk løsning der verdiene veksler mellom pluss og minus fra nabopunkt til nabopunkt og amplituden vokser, er det denne moden som har tatt av. Diagnosen er alltid den samme: sjekk rr.

Betinget kontra ubetinget stabilitet
Betinget stabil: skjemaet er stabilt bare når steglengdene oppfyller en betingelse. Det eksplisitte skjemaet er betinget stabilt, med betingelsen r12r \le \tfrac12.

Ubetinget stabil: skjemaet er stabilt for alle valg av Δt\Delta t og hh. Crank–Nicolson og bakover-Euler i kap. 8.3 er ubetinget stabile.

Prisen for ubetinget stabilitet er alltid den samme: du må løse et likningssystem i hvert tidssteg i stedet for bare å sette inn i en formel. Hele avveiningen mellom eksplisitte og implisitte metoder ligger i denne ene setningen.

Konvergens = konsistens + stabilitet

At den beregnede løsningen UinU_i^n nærmer seg den eksakte u(xi,tn)u(x_i,t_n) når h0h \to 0 og Δt0\Delta t \to 0, krever to ting:

- konsistens: avkuttingsfeilen i skjemaet går mot null (den er O(Δt)+O(h2)O(\Delta t) + O(h^2) her);
- stabilitet: feilene forsterkes ikke underveis.

Har du bare det ene, får du ikke konvergens. Det eksplisitte skjemaet er alltid konsistent, uansett rr — men bare konvergent når r12r \le \tfrac12.

Dette er den enkleste formen av Lax' ekvivalensteorem, og det er verdt å kunne som setning, ikke bare som praktisk regel.

Arbeidsmengden per tidssteg
Ett tidssteg i det eksplisitte skjemaet koster omtrent 3(N1)3(N-1) regneoperasjoner: tre ledd per indre punkt. Ingen likningssystem, ingen matriser.

Det er metodens store fordel — og hele fordelen forsvinner i stabilitetskravet. Skal du regne fram til tiden TT, trenger du

antall steg=TΔt2c2Th2\text{antall steg} = \frac{T}{\Delta t} \ge \frac{2c^2T}{h^2}

tidssteg. Totalarbeidet vokser dermed som 1/h31/h^3: én potens fra antall romlige punkter, to fra antall tidssteg.

Halverer du hh, åttedobles arbeidet. Det er dette som gjør implisitte skjemaer verdt prisen for store beregninger.

Maksimumsprinsippet

For den eksakte varmelikningen med kalde ender gjelder: løsningen kan aldri bli større enn den største verdien i startdataene eller på randen, og aldri mindre enn den minste. Varme skaper ikke nye topper.

Det eksplisitte skjemaet arver denne egenskapen — men bare når r12r \le \tfrac12. Da er den nye verdien et veid gjennomsnitt av tre gamle, med ikke-negative vekter.

Det gir deg en gratis kontroll av enhver håndregning: dukker det opp en verdi utenfor det opprinnelige spennet, har du enten regnet feil eller brukt for stort tidssteg.

Avkuttingsfeilen til skjemaet
Setter du den eksakte løsningen inn i skjemaet, blir det som ikke går opp:

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

O(Δt)O(\Delta t) kommer fra den forlengs kvotienten i tid, O(h2)O(h^2) fra den andre sentraldifferansen i rom, begge utledet i kap. 8.1.

Ubalansen er skjemaets svakhet. Rommet er andreordens, tiden bare førsteordens — og siden stabiliteten uansett tvinger Δth2/2\Delta t \sim h^2/2, blir de to feilbidragene faktisk av samme størrelsesorden i praksis. Det er en slags trøst, men det er en dyr trøst: du betaler h2h^2-mange tidssteg for det.

Startraden og randkolonnene
Startraden Ui0=u(xi,0)U_i^0 = u(x_i, 0) leses rett av initialbetingelsen, i alle punkter inkludert randen.

Randkolonnene U0nU_0^n og UNnU_N^n leses av randbetingelsen på hvert tidsnivå.

Er randbetingelsen og initialbetingelsen uenige i et hjørne — for eksempel u(x,0)=1u(x,0) = 1 overalt, men u(0,t)=0u(0,t) = 0 — er det en inkonsistens i hjørnet. Det er tillatt matematisk (den eksakte løsningen har et sprang der ved t=0t = 0), men det gir en numerisk løsning som er dårlig nær hjørnet de første stegene, og det er nettopp slike data som fyller gitteret med sagtannkomponenter.

Repetisjonsoppgaver
Din fremgang
0 / 5 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.