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$.
Innenfor sjanger P finnes tre faste varianter, én i hvert av kapitlene i denne delen:
1. det eksplisitte skjemaet for varmelikningen — dette kapitlet;
2. Crank–Nicolson og det tridiagonale systemet — kap. 8.3;
3. randverdiproblem med falsk rand og kodefeil — kap. 8.4.
Delspørsmålene som går igjen her er to, og de kommer nesten alltid sammen:
- «Regn ut for hånd» i ett bestemt gitterpunkt, ut fra gitte initial- og randdata. Rent regnearbeid, og et sikkert delpoeng.
- «Avgjør om skjemaet er stabilt.» Det er stabilitetskravet , og det er en av toppsjikt-markørene i hele emnet. Bruker du skjemaet med uten å kommentere det, mister du poeng selv om regningen er riktig.
Formelark-merking.
- Differansekvotientene står på det utdelte formelarket — tren oppslaget. Det gjør også Crank–Nicolson-formelen du møter i neste kapittel. Ferdigheten er å plukke riktig kvotient og sette inn riktige indekser.
- Oppsettet av det eksplisitte skjemaet og stabilitetsgrensen må kunnes. Formelarket har ingen stabilitetsbetingelse noe sted. Denne ene ulikheten hører hjemme på ditt eget A5-ark.
Tidsbruk: 60 minutter lesetid, fire løkker à omtrent et kvarter. Naturlig pausepunkt etter løkke 2. Ganger du 1,5 fordi du skriver av for hånd, blir det halvannen time — det er en hel kveldsøkt.
Sist du var her. De tre tingene du kommer til å bruke i hver eneste oppgave i dette kapitlet:
Den andre sentraldifferansen fra kap. 8.1. Mønsteret og nevneren .
Varmelikningen fra kap. 5.1, med diffusivitetskonstanten .
Den analytiske løsningen ved kalde ender fra kap. 5.2. Den er fasiten vi kontrollerer mot til slutt — og for startdata er den bare det ene leddet .
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:
Kapitlet gjør fire ting: setter opp gitteret i rom og tid, utleder skjemaet og regner et gitterpunkt for hånd, viser hvor grensen 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.
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 og tiden . Det betyr to steglengder og to indekser, og det er her de fleste indeksfeilene oppstår.
Resultatet er et rutenett av punkter . Vi kjenner verdiene på startraden (, fra initialbetingelsen) og langs de to sidekantene ( og , fra randbetingelsene). Alt annet skal regnes ut.
Rekkefølgen er avgjørende: vi fyller inn én rad om gangen, nedenfra og opp. Rad regnes helt ut fra rad .
Den øvre indeksen er tidsnivå, ikke en potens. betyr «verdien i punkt på tidsnivå 2», ikke « 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 -aksen; øvre står høyt, som tiden som vokser oppover.
Avstanden mellom to tidsnivåer, .
Merk denne notasjonskollisjonen — den er verdt tretti sekunder nå og et helt delpunkt på eksamen. Det utdelte formelarket bruker bokstaven for tidssteget og skriver stabilitetstallet som . Denne boka skriver i stedet og , av én grunn: i kap. 5.1 er 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 i differanseavsnittet, er det altså tidssteget — det du her har lært å kalle . Skriv gjerne den oversettelsen på ditt eget A5-ark.
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 direkte, uten å løse noe likningssystem.
Prisen er ordenen. Forlengs er bare , mens romdelen er . Denne ubalansen er hele motivasjonen for Crank–Nicolson i kap. 8.3.
(Innstegsoppgave — ren avlesning.) Et gitter for varmelikningen på har delintervall og tidssteg .
a) Hva er romsteget ?
b) Skriv opp koordinatene til gitterpunktet .
c) Hvor mange verdier på rad 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.
Sett inn forlengs differanse i tid på venstre side og den andre sentraldifferansen i rom på høyre side, begge i punktet :
Ganger vi opp med og flytter over, står det
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 bestemmer hvor mye det jevner ut per skritt.
Er , forenkles den til .
Legg merke til , ikke . Halverer du romsteget og vil holde 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 når diffusiviteten ikke er 1, og å bytte om teller og nevner slik at det blir .
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 og settes ikke av formelen; de leses av randbetingelsen. Formelen gjelder bare de indre punktene.
De tre vektene , , 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 , 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.
Bruk og . Regn ut hele raden , og deretter .
Siden 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 , og initialfunksjonen gir
Steg 3 — bruk skjemaet på hvert indre punkt. Med :
:
:
: ved symmetri lik , men vi skriver den ut:
Randverdiene beholdes: . Rad 1 er altså
Steg 4 — ett skritt til, for .
Steg 5 — kontroller at svaret er fornuftig. Tre ting å se etter, og alle tre gir uttelling når de nevnes:
1. Toppen synker: . Varme sprer seg, temperaturen jevner seg ut. ✓
2. Ingen verdi er større enn den største startverdien () eller mindre enn den minste (). Det er nettopp det den veide middelverdien garanterer når . ✓
3. Symmetrien er bevart: på hver rad, akkurat som startdataene er symmetriske om . Brytes symmetrien, er det en regnefeil — eller en kodefeil, som du skal se i kap. 8.4. ✓
Merk at ikke endret seg i første skritt. Startprofilen er en rett linje mellom og , 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 — krumningen — som driver hele prosessen.
Regn ut og avgjør om det eksplisitte skjemaet er stabilt i hvert tilfelle.
a) , , .
b) , , .
c) , , .
Bruk og .
a) Regn ut og avgjør om skjemaet er stabilt.
b) Regn ut hele raden .
c) Regn ut .
Løkke 3 — Grensen , 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.
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.
Skriv skjemaet på vektform:
Anta . Da er , og alle tre vektene er ikke-negative og summerer seg til 1. La være den største absoluttverdien på rad . Da er
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 ? Da er . 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.
Se på et mønster som veksler mellom pluss og minus fra gitterpunkt til gitterpunkt:
Dette er den «verste» formen data kan ha — den kortest mulige bølgen gitteret kan bære. Sett den inn i skjemaet:
Både og er lik , så
Amplituden ganges altså med for hvert tidssteg:
Dette holder seg begrenset hvis og bare hvis , altså
Er 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 , får du forsterkningsfaktoren
Den er mest negativ når , altså for sagtannmoden — så den ene moden vi regnet på, er nettopp den som avgjør. Kravet for alle gir samme svar: .
Ekvivalent, løst for tidssteget:
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.
Løs på med kalde ender og en bratt starttemperatur: i alle indre punkter, på randen. Bruk og kjør skjemaet i 60 tidssteg med , og . Hva skjer?
Med :
| for den verste moden | vekst per steg | etter 60 steg | |
|---|---|---|---|
| 0,50 | 0,951 | (dør ut) | |
| 0,52 | 1,029 | (vokser) | |
| 0,60 | 1,341 | (eksploderer) |
Steg 2 — den faktiske kjøringen. Kjørt med skjemaet, ikke med formelen:
| steg | |||
|---|---|---|---|
| 0 | 1 | 1 | 1 |
| 10 | 0,781 | 0,788 | 1,248 |
| 20 | 0,474 | 0,500 | 11,61 |
| 40 | 0,174 | 0,256 | |
| 60 | 0,0637 | 0,232 |
Tallene er største absoluttverdi i gitteret.
Steg 3 — les tabellen.
Ved synker maksimalverdien jevnt, akkurat slik varme skal oppføre seg. Den eksakte løsningen ved er omtrent ; skjemaet gir .
Ved — 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 er det ingen tvil. Etter 60 steg står det millioner der temperaturen skulle vært , 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 og 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 , sammenlign med , 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.
b) Samme spørsmål for med .
c) Hvor mange tidssteg trengs i b) for å komme fram til ?
Vis at sagtannmønsteret forsterkes med faktoren per tidssteg, og bruk det til å avgjøre hva som skjer i de tre tilfellene , og .
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 er rekka bare ett ledd.
har den eksakte løsningen
Hvorfor bare ett ledd: startfunksjonen er den første egenfunksjonen med , så alle andre Fourier-koeffisienter er null. Egenverdien er , og tidsfaktoren blir .
Dette er testproblemet som brukes overalt i faget, nettopp fordi fasiten er én linje. Kontroller alltid et nytt skjema mot det først.
Løs testproblemet , , med og .
a) Avgjør om skjemaet er stabilt.
b) Regn ut for hånd.
c) Regn tre tidssteg og sammenlign hele raden med den eksakte løsningen .
d) Forklar hvorfor avviket er som det er.
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 med :
og .
c) Tre steg mot fasiten. Kjørt videre med samme skjema, og sammenlignet med :
| 0,01 | numerisk | 0,531657 | 0,860239 | 0,860239 | 0,531657 |
| 0,01 | eksakt | 0,532544 | 0,861674 | 0,861674 | 0,532544 |
| 0,02 | numerisk | 0,480888 | 0,778093 | 0,778093 | 0,480888 |
| 0,02 | eksakt | 0,482495 | 0,780693 | 0,780693 | 0,482495 |
| 0,03 | numerisk | 0,434967 | 0,703792 | 0,703792 | 0,434967 |
| 0,03 | eksakt | 0,437149 | 0,707322 | 0,707322 | 0,437149 |
Største avvik ved er , 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 inn i skjemaet; forsterkningsfaktoren blir
Den eksakte løsningen dempes med
per tidssteg. Skjemaet demper altså litt for mye — mot — og derfor ligger alle de numeriske tallene litt under fasiten, med et avvik som vokser jevnt for hvert steg.
Kontroll: etter tre steg er mot . Ganget med gir det og — 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) regnet ut og sammenlignet med 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.
Testproblemet i eksempelet, men med og .
a) Regn ut og avgjør stabiliteten.
b) Regn ut forsterkningsfaktoren for grunnmoden, og sammenlign med den eksakte dempningen .
c) Hva blir ?
Betrakt på med isolerte ender: , og .
a) Vis at den eksakte løsningen er .
b) Gitteret er , . Regn ut og avgjør stabiliteten.
c) Regn ut og (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 og når du trenger randverdier.
Et eksplisitt skjema kjøres på med og på med kalde ender. Startdataene er glatte: , 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å i den verste moden har vokst til størrelse 1.
Å bruke skjemaet med uten å kommentere det. Dette er den dyreste feilen i kapitlet, og den koster poeng selv når alle gitterverdiene er regnet riktig. Løsningsforslagene krever at stabiliteten vurderes. Regn ut først, konkluder, og fortsett — også når oppgaven ikke spør.
Feil indeksering av naboverdiene. Parentesen er , og alle tre skal hentes fra samme rad . Blander du inn en verdi fra rad fordi du allerede har regnet den ut, får du et helt annet skjema — det er nøyaktig den kodefeilen du skal lete etter i kap. 8.4.
Å la formelen overskrive randverdiene. Skjemaet gjelder bare for . Randverdiene kommer fra randbetingelsen og settes inn på nytt på hver rad.
Å tro at stabilitet betyr nøyaktighet. Ved er skjemaet stabilt og likevel merkbart unøyaktig, slik oppgave 6 viser. Stabilitet er en nedre terskel, ikke et kvalitetsstempel.
Å glemme at og ikke kan velges uavhengig. Halverer du for å få bedre romlig oppløsning, må deles på fire. Regnearbeidet åttedobles. Dette er verdt en setning i enhver drøftingsoppgave om metodevalg.
Å blande -ene. Det utdelte formelarket kaller tidssteget , mens i Del 5 er separasjonskonstanten. Skriv i din egen besvarelse, og noter i margen hva arket kaller det.
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.
Her er bølgetallet: små er lange, glatte bølger, store er korte, oscillerende.
Stabilitet betyr for alle . Siden ligger mellom 0 og 1, ligger mellom og 1, og kravet blir , altså .
For en enkelt diskret mode på et gitter med intervall er , så .
Mønsteret — den korteste bølgen et gitter i det hele tatt kan bære, med bølgelengde .
Den er den mest utsatte moden i det eksplisitte skjemaet, og det er dens forsterkningsfaktor som setter grensen .
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 .
Ubetinget stabil: skjemaet er stabilt for alle valg av og . 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.
At den beregnede løsningen nærmer seg den eksakte når og , krever to ting:
- konsistens: avkuttingsfeilen i skjemaet går mot null (den er her);
- stabilitet: feilene forsterkes ikke underveis.
Har du bare det ene, får du ikke konvergens. Det eksplisitte skjemaet er alltid konsistent, uansett — men bare konvergent når .
Dette er den enkleste formen av Lax' ekvivalensteorem, og det er verdt å kunne som setning, ikke bare som praktisk regel.
Det er metodens store fordel — og hele fordelen forsvinner i stabilitetskravet. Skal du regne fram til tiden , trenger du
tidssteg. Totalarbeidet vokser dermed som : én potens fra antall romlige punkter, to fra antall tidssteg.
Halverer du , åttedobles arbeidet. Det er dette som gjør implisitte skjemaer verdt prisen for store beregninger.
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 . 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.
kommer fra den forlengs kvotienten i tid, 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 , 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 -mange tidssteg for det.
Randkolonnene og leses av randbetingelsen på hvert tidsnivå.
Er randbetingelsen og initialbetingelsen uenige i et hjørne — for eksempel overalt, men — er det en inkonsistens i hjørnet. Det er tillatt matematisk (den eksakte løsningen har et sprang der ved ), 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.
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.