8.3 Feilvurdering, kodemodifikasjon og trapesmetode
Kjenne igjen at Forward Euler «lekker energi», rette det, utvide koden med et nytt kraftledd, og integrere måledata med trapesmetoden.
| Undertype | Hva du blir bedt om |
|---|---|
| Feilvurdering | «En student får en bane som spiraler utover. Forklar hva som er galt, og hvordan det rettes.» |
| Kodemodifikasjon | «Et nytt kraftledd kommer til. Vis hvordan du endrer akselerasjonslinja.» |
| Trapesmetode på datafil | «Finn arbeidet fra en tabell med målte krefter og posisjoner.» |
Alle tre er også sjanger J — kvalitative «forklar, begrunn eller kritiser»-oppgaver, som har minst én deloppgave i hvert eneste sett. Det du leverer, er en forklaring, ikke bare et tall.
Den dyreste enkeltfeilen i kodemodifikasjon er å endre for lite. En besvarelse som kunne vært skrevet uten å ha lest den nye opplysningen, gir null poeng — uansett hvor riktig den opprinnelige koden var.
Høyeste prioritet — dette må sitte.
Øktforslag: kapitlet er på 65 minutter. Løkke 1–2 (feildiagnose og kodemodifikasjon) er en naturlig første økt, løkke 3–4 (trapesmetoden og kvalitetssjekken) den neste.
Forkunnskaper — sist du var her
Dette kapitlet bygger på kap. 8.2 og kap. 5.1. Det du trenger derfra, ferdig oppfrisket:
Euler–Cromer-løkka i to dimensjoner fra forrige kapittel — fire tabeller, fellesfarten først, begge fartene før begge posisjonene:
og tilsvarende for .
Sentralkraft på komponentform, som er innpakningen i de fleste feilvurderingsoppgavene:
Arbeidsintegralet fra kap. 5.1, som er hele grunnlaget for trapesdelen:
Arbeidet er arealet under kraftkurven. Er kraften konstant, er arealet et rektangel; varierer den, må arealet regnes ut — og har du bare måledata, må det regnes ut numerisk.
Fra matematikken: Numerisk integrasjon gir trapesmetoden med jevne intervaller. Her generaliserer vi den til ujevne intervaller, som er det måledata faktisk gir.
Notasjonsavtale for kapitlet. I baneeksemplene regner vi i astronomiske enheter: avstand i AU (astronomiske enheter, altså jordbanens radius) og tid i år. Da er gravitasjonsparameteren for sola , et tall som er verdt å kjenne. I trapesdelen er alt i SI. Vi bruker .
Løkke 1 — å lese en feil ut av en graf (~16 min)
En student simulerer en komet rundt sola og får en bane som sakte spiraler utover. Kometen kommer aldri tilbake til utgangspunktet — hvert omløp er litt større enn det forrige.
Er dette fysikk eller en feil?
Spørsmålet er ikke retorisk. Det finnes fysiske grunner til at en bane kan utvide seg: en rakettmotor, en drivende kraft, energi tilført utenfra. Men i en simulering av ren gravitasjon finnes ingen slik mekanisme — gravitasjonen er konservativ, og den mekaniske energien skal være bevart. En voksende bane er derfor et varsel om at koden gjør noe likningen ikke gjør.
At den numeriske metoden selv tilfører eller fjerner mekanisk energi, i et system der energien fysisk skal være konstant.
Forward Euler bruker den gamle farten i posisjonsoppdateringen. For en bane eller en svingning betyr det at legemet konsekvent flyttes litt for langt utover før kraften rekker å trekke det inn igjen, og feilen peker samme vei i hvert eneste steg.
Konsekvensen er ikke støy, men en trend. Energien vokser jevnt, og siden banens størrelse er bestemt av energien, vokser banen med den. Det er dette som gir spiralen.
Euler–Cromer bruker den oppdaterte farten, og feilen skifter fortegn gjennom omløpet. Energien svinger da rundt riktig verdi uten å vandre av gårde.
Testen som avgjør hvilken av de to feiltypene du har med å gjøre: kjør på nytt med halvert steglengde.
| Observasjon | Diagnose |
|---|---|
| Avviket blir om lag halvert | Metodefeil — for grov diskretisering |
| Avviket krymper mot null når du bytter til Euler–Cromer | Metodefeil — energilekkasje |
| Avviket står helt urørt | Modellfeil — manglende kraftledd, galt fortegn, feil initialbetingelse |
Testen tar ett minutt, og den er den eneste som skiller entydig. Å gjette på fysikk før halveringstesten er tatt, er den vanligste feilslutningen i numerisk modellering — man ender med å lete etter en fysisk forklaring på noe som bare er en for stor .
En komet passerer sola i avstanden med farten vinkelrett på radien. Vi regner i astronomiske enheter, der .
a) Simulér fem omløp med både Forward Euler og Euler–Cromer, med samme steglengde, og sammenlikn den største avstanden fra sola.
b) Hva er den analytiske fasiten for den største avstanden?
c) Hvilken av metodene er riktig, og hva ville du svart en student som lurte på om spiralen var fysikk?
a)
import numpy as np
GM = 4 * np.pi**2 # AU^3/aar^2
N = 11501
dt = 0.0010 # aar
for metode in ["Euler-Cromer", "Forward Euler"]:
x = np.zeros(N)
y = np.zeros(N)
vx = np.zeros(N)
vy = np.zeros(N)
x[0] = 1.00 # AU, perihel
vy[0] = 7.50 # AU/aar
for i in range(N - 1):
r = np.sqrt(x[i]**2 + y[i]**2)
ax = -GM * x[i] / r**3
ay = -GM * y[i] / r**3
if metode == "Euler-Cromer":
vx[i + 1] = vx[i] + ax * dt
vy[i + 1] = vy[i] + ay * dt
x[i + 1] = x[i] + vx[i + 1] * dt
y[i + 1] = y[i] + vy[i + 1] * dt
else:
x[i + 1] = x[i] + vx[i] * dt
y[i + 1] = y[i] + vy[i] * dt
vx[i + 1] = vx[i] + ax * dt
vy[i + 1] = vy[i] + ay * dt
r = np.sqrt(x**2 + y**2)
print(metode, " aphel forste omlop:", round(np.max(r[:2400]), 4),
" aphel femte omlop:", round(np.max(r[9200:]), 4))Utskrift:
Euler-Cromer aphel forste omlop: 2.4773 aphel femte omlop: 2.4773
Forward Euler aphel forste omlop: 2.5688 aphel femte omlop: 3.1334b) Den mekaniske energien per masseenhet er
Negativ energi betyr en lukket bane. Den store halvaksen følger av :
Siden startpunktet er perihel med , er aphelavstanden
c) Euler–Cromer treffer fasiten på fire gjeldende siffer — og gjør det like godt i femte omløp som i første. Forward Euler bommer allerede med i første omløp og med i det femte.
Svaret til studenten: spiralen er ikke fysikk. Gravitasjonen er konservativ, så den mekaniske energien skal være nøyaktig bevart, og en lukket bane skal lukke seg i all evighet. En bane som utvider seg jevnt, betyr at energien vokser — og det finnes ingenting i likningen som kan tilføre energi. Feilen ligger i metoden: Forward Euler bruker den gamle farten i posisjonsoppdateringen og legger til litt energi i hvert eneste steg.
Kontrollen som avgjør: kjør på nytt med halvert . Spiralen blir da omtrent halvert i styrke, og det beviser at den er en diskretiseringseffekt. Var den fysikk, ville den stått helt urørt.
Sensorblikk: deloppgaven ber om en forklaring, og en fullgod besvarelse har tre ledd: at energien fysisk skal være bevart, at Forward Euler bryter dette fordi den bruker gammel fart, og hvordan det rettes. Å svare «koden er feil» uten mekanismen gir liten uttelling.
Når en simulering viser energidrift, finnes tre grep, i denne rekkefølgen:
1. Bytt til Euler–Cromer. Oppdater farten først og bruk den oppdaterte farten på posisjonen. Dette er nesten alltid det riktige svaret i dette emnet, det koster to linjers omskriving, og det fjerner driften helt.
2. Reduser steglengden. Halverer du , halveres driften — men den forsvinner ikke. Med Forward Euler kjøper du bare tid, og for lange simuleringer blir det raskt uoverkommelig dyrt.
3. Bruk en høyere ordens metode. Det finnes metoder der feilen går som i stedet for . De er kraftigere, men mer å skrive.
Rangeringen er ikke tilfeldig. Grep 1 fjerner årsaken; grep 2 og 3 demper symptomet. En besvarelse som bare foreslår mindre , har ikke sett hva som faktisk er galt.
En familie av høyere ordens metoder, der akselerasjonen evalueres flere ganger inne i hvert tidssteg og resultatene veies sammen. Den vanligste varianten har en feil som går som .
Dette er stoff du bare skal kjenne til. Metoden er nevnt i emnebeskrivelsen, men Euler–Cromer er metoden sensor forventer og premierer, og det er den som skal kunne skrives for hånd. Det finnes ingen drill og ingen oppgaver på Runge–Kutta i denne boka, og du skal ikke bruke tid på å pugge koeffisientene.
Det du kan si i en besvarelse, er at høyere ordens metoder finnes og gir raskere konvergens — som ett av tre mulige grep mot numerisk feil. Mer enn den ene setningen trengs ikke.
Forklar med egne ord, i to–tre setninger hver:
a) hvorfor en planetbane som spiraler utover i en simulering, er et varsel om en feil og ikke om fysikk,
b) hva halveringstesten er, og hva den skiller mellom,
c) hvorfor «reduser » er et dårligere svar enn «bytt til Euler–Cromer» når banen spiraler.
Løkke 2 — kodemodifikasjon (~16 min)
Den andre nyere undertypen er denne: du har en fungerende kode, og så kommer det en ny opplysning. En ny kraft, en ny betingelse, en ny effekt. Vis hvordan du endrer koden.
Oppgaven er lettere enn den ser ut, fordi svaret nesten alltid ligger i én linje — akselerasjonslinja. Løkkestrukturen, tabellene og initialbetingelsene er uendret.
Men det er én ting som må sitte, og det er nettopp den sensor sjekker.
Å utvide en eksisterende simulering med et nytt kraftledd, ved å legge det til i akselerasjonslinja.
Framgangsmåten er alltid den samme:
1. skriv den nye kraften som en vektor, med retning;
2. dekomponer den langs aksene;
3. del på massen, med mindre kraften selv er proporsjonal med massen;
4. legg leddet til i akselerasjonslinja med riktig fortegn.
Alt annet i koden er uendret. Det er også noe du skal si eksplisitt i besvarelsen — at initialbetingelsene, løkkestrukturen og oppdateringsrekkefølgen er de samme. Da viser du at du vet hvor endringen hører hjemme, ikke bare at du klarte å skrive et nytt uttrykk.
Advarsel: en besvarelse som kunne vært skrevet uten å ha lest den nye opplysningen, gir null poeng. Å endre for lite er dyrere enn å endre litt feil.
Tyngden er proporsjonal med massen, , så bidraget til akselerasjonen er — massen forkortes, og den skal ikke stå i akselerasjonslinja.
Gravitasjonen fra et sentrallegeme er også proporsjonal med legemets masse, , så bidraget er — masseuavhengig.
Alle andre krefter må deles på massen. Luftmotstand , fjærkraft , rullemotstand , en solvind — ingen av dem inneholder legemets masse, så bidraget til akselerasjonen er kraften delt på .
Testen er enkel: står det en i kraftuttrykket? Da forkortes den. Gjør det ikke det? Da må du dele.
der er en konstant og er avstanden til sola.
a) Vis hvordan akselerasjonslinjene endres, og forklar hvorfor massen nå må stå i uttrykket.
b) Vis at solvinden virker som en reduksjon av sentrallegemets gravitasjonsparameter, og finn den effektive verdien.
c) Kjør simuleringen for , og , og tolk resultatet.
d) Hva skjer når nærmer seg ?
a) Solvinden peker utover, altså langs , mens gravitasjonen peker innover. Enhetsvektoren utover har komponentene og , så
Kraften inneholder ingen faktor — den er bestemt av kometens tverrsnitt og av solstrålingen, ikke av hvor tung kometen er. Akselerasjonsbidraget er derfor , og massen blir stående:
I kode blir de to linjene:
ax = -GM*x[i]/r**3 + (s/m)*x[i]/r**3
ay = -GM*y[i]/r**3 + (s/m)*y[i]/r**3Kontrasten er hele poenget. Gravitasjonsleddet står uten masse, fordi gravitasjonskraften selv inneholder som forkortes. Solvindleddet står med masse, fordi ikke gjør det. To ledd i samme linje, og bare det ene har en i nevneren — det er akkurat den forskjellen sensor ser etter.
b) Begge leddene har samme form, bare med motsatt fortegn:
Solvinden virker altså nøyaktig som om sola var lettere:
Det er et pent resultat, og det er verdt å skrive ut: en radiell -kraft utover kan ikke skilles fra en svakere tyngdekraft, så lenge den har samme avstandsavhengighet.
c)
import numpy as np
GM = 4 * np.pi**2
N = 2501
dt = 0.0010
for s_over_m in [0.0, 4.00, 8.00]:
x = np.zeros(N); y = np.zeros(N)
vx = np.zeros(N); vy = np.zeros(N)
x[0] = 1.00
vy[0] = 7.50
for i in range(N - 1):
r = np.sqrt(x[i]**2 + y[i]**2)
ax = -GM * x[i] / r**3 + s_over_m * x[i] / r**3
ay = -GM * y[i] / r**3 + s_over_m * y[i] / r**3
vx[i + 1] = vx[i] + ax * dt
vy[i + 1] = vy[i] + ay * dt
x[i + 1] = x[i] + vx[i + 1] * dt
y[i + 1] = y[i] + vy[i + 1] * dt
r = np.sqrt(x**2 + y**2)
print("s/m =", s_over_m, " storste avstand:", round(np.max(r), 4), "AU")Utskrift:
s/m = 0.0 storste avstand: 2.4773 AU
s/m = 4.0 storste avstand: 3.8249 AU
s/m = 8.0 storste avstand: 6.4618 AUTolkning: solvinden svekker den innadrettede kraften, kometen holdes dårligere fast, og banen blir større. Med er , altså svakere, og aphelavstanden vokser fra til — en økning på . En liten endring i kraften gir en stor endring i banen, fordi kometen allerede er nær grensen der banen ikke lenger lukker seg.
d) Når , går : den samlede radielle kraften forsvinner, og kometen fortsetter rett fram med konstant fart. For blir den samlede kraften rettet utover, og kometen skyves bort fra sola og kommer aldri tilbake.
Overgangen skjer i praksis før den grensen. Banen slutter å være lukket allerede når den mekaniske energien blir positiv, altså når
altså når . Kjøringen med ligger fortsatt under, og banen er lukket — men nå er omløpstiden vokst til over elleve år, og de årene koden simulerer, rekker ikke engang ut til aphel. De er der kometen står når løkka stopper, fortsatt på vei utover; den virkelige aphelavstanden er . Lærdommen er å sjekke at kjøringen faktisk dekker et helt omløp før du leser av en aphelavstand.
— naturlig pausepunkt —
En kode simulerer en ladet støvpartikkel med masse i bane rundt en planet. Akselerasjonslinjene er
ax = -GM*x[i]/r**3
ay = -GM*y[i]/r**3Nå opplyses det at partikkelen i tillegg påvirkes av en konstant kraft med tallverdi , rettet i positiv -retning, og av en luftmotstand fra en tynn gassky.
a) Skriv de nye akselerasjonslinjene.
b) For hvert av de tre kraftleddene: skal massen stå i uttrykket eller ikke? Begrunn hver av dem.
c) Hvilke andre deler av koden må endres?
d) En medstudent leverer koden uendret og skriver «kraften er så liten at den ikke betyr noe». Vurder svaret.
Løkke 3 — trapesmetoden på måledata (~18 min)
Den tredje undertypen er annerledes. Her skal du ikke løse en differensiallikning i det hele tatt — du skal integrere en tabell.
Situasjonen er denne: et forsøk har målt kraften på et legeme i en rekke posisjoner, og du skal finne arbeidet. Fra kap. 5.1 vet du at
altså arealet under kraftkurven. Men du har ingen funksjon — du har åtte punkter.
Og punktene ligger ikke jevnt. Det er nettopp det som gjør oppgaven verdt fem poeng.
I kode:
W = 0
for i in range(n-1):
W += (F[i+1] + F[i]) * (x[i+1] - x[i]) / 2Faktoren er gjennomsnittshøyden i trapeset, og er bredden. Produktet er arealet.
Bredden må hentes fra dataene, ikke antas. Skriver du en fast , regner du på et rutenett som ikke finnes — og feilen kan bli hvilken som helst størrelse, avhengig av hvordan punktene faktisk ligger.
Formelen er riktig — for jevne data. På ujevne data gir den systematisk feil, fordi den vekter alle punktene likt uansett hvor tett de ligger.
For datasettet i eksempel 3 gir den riktige metoden og fast-steg-formelen : for lavt. Retningen på feilen avhenger av hvor de tette punktene ligger — her ligger de der kraften er liten, og de får dermed altfor stor vekt.
Kontrollen er å se på dataene før du regner: er avstandene like? Er de ikke det, må hver bredde regnes for seg.
Metoden gjelder for kraftkomponenten langs bevegelsen. Er kraften ikke parallell med forflytningen, er det som skal integreres — akkurat som i det analytiske arbeidsintegralet.
Trapesmetoden overvurderer arealet under en konveks kurve (en som krummer oppover) og undervurderer det under en konkav. For en kraft som vokser stadig raskere med strekningen — en typisk fjær eller strikk — vil svaret derfor ligge litt for høyt, og avviket krymper når du måler tettere.
En strikk strekkes langsomt, og kraften måles ved åtte posisjoner:
a) Skriv koden som finner arbeidet, og forklar hvorfor den ikke kan bruke en fast steglengde.
b) Kjør koden, og oppgi arbeidet.
c) En tilpasning til dataene gir i SI-enheter. Bruk den til å kontrollere svaret.
d) Gjør en kvalitetssjekk av resultatet: benevning, størrelsesorden og retning på avviket.
a) Avstandene mellom punktene er , , , , , og — de vokser med over en faktor fire gjennom serien. En fast steglengde ville derfor vektet de tette punktene i starten altfor tungt og de spredte til slutt altfor lett.
import numpy as np
x = np.array([0.000, 0.020, 0.050, 0.090, 0.140, 0.220, 0.310, 0.400])
F = np.array([0.0, 5.0, 13.5, 26.5, 45.4, 81.8, 132.1, 192.0])
W = 0.0
for i in range(len(x) - 1):
W += (F[i + 1] + F[i]) * (x[i + 1] - x[i]) / 2
print("arbeid, trapes med ujevne steg:", round(W, 3), "J")
dx = (x[-1] - x[0]) / (len(x) - 1)
Wfeil = dx * (F[0] / 2 + np.sum(F[1:-1]) + F[-1] / 2)
print("arbeid, feilaktig fast steg: ", round(Wfeil, 3), "J")Utskrift:
arbeid, trapes med ujevne steg: 32.223 J
arbeid, feilaktig fast steg: 22.874 Jb) Arbeidet er .
Fast-steg-formelen gir , altså for lavt. Det er en feil som er stor nok til å endre konklusjonen i en hvilken som helst oppgave — og den kommer utelukkende av å ha antatt et rutenett dataene ikke har.
c) Med er
Trapessummen ligger over. Det er nøyaktig det fortegnet man skal vente: kraftkurven krummer oppover, og et trapes mellom to punkt på en oppoverkrummet kurve ligger over kurven. Trapesmetoden overvurderer derfor arealet under en konveks kurve.
Legger vi inn ett ekstra målepunkt midt i det siste, brede intervallet, faller summen til — avviket krymper når dataene blir tettere, som det skal.
d) Fire kontroller:
Benevning. ✓ — kraft ganger strekning er arbeid.
Størrelsesorden. Kraften vokser fra null til over . En grov middelkraft på om lag over den strekningen gir — samme størrelsesorden ✓. Et anslag på (middelkraften satt lik maksimalkraften) ville vært for høyt, fordi kurven ligger under den rette linja mesteparten av veien.
Retning på avviket. Trapes over en konveks kurve overvurderer, og svaret ligger over den analytiske verdien ✓. At avviket har det fortegnet teorien forutsier, er en sterkere kontroll enn at det er lite.
Rimelighet. er energien i en gjenstand på ett kilogram løftet drøyt tre meter. For en kraftig strukket strikk er det helt rimelig.
Sensorblikk: deloppgaven har fem poeng, og de fordeler seg typisk som riktig formel med varierende bredde (2 p), riktig gjennomført summering (2 p) og enhet med kvalitetssjekk (1 p). Å levere tallet uten et ord om enhet eller rimelighet er å la det siste poenget ligge, og det er det billigste i hele oppgaven.
En kraft måles langs en bevegelse i fem posisjoner:
a) Finn arbeidet med trapesmetoden, ledd for ledd.
b) Hva ville en fast steglengde gitt?
c) Kraften følger tilsynelatende . Kontroller svaret analytisk.
d) Hvorfor treffer trapesmetoden eksakt i dette tilfellet, mens den bommet med i eksempel 3?
Løkke 4 — kvalitetssjekk av et numerisk svar (~12 min)
Et numerisk svar er et tall uten historie. Det kommer ikke med en utledning du kan lese fortegnene ut av, og det protesterer ikke om det er feil med en faktor tusen.
Derfor har alle numeriske svar i denne boka en kvalitetssjekk knyttet til seg, og derfor skal din også ha det.
De fire kontrollene som skal følge ethvert tall som kommer ut av en kode:
1. Benevning. Har svaret riktig enhet? En terminalfart i er en glemt kvadratrot; et arbeid i er en glemt strekning.
2. Størrelsesorden. Er tallet fysisk rimelig? En sykkel i , en pendel med sekstisekundersperiode eller et kast på ti kilometer er varsler som en enkel overslagsregning fanger.
3. Grensetilfelle. Slå av det vanskelige leddet og sjekk mot en kjent formel. Dette er den sterkeste av de fire, fordi den tester hele koden mot en uavhengig fasit.
4. Konvergens. Halvér steglengden — eller mål tettere — og se om svaret er stabilt.
Alle fire kan skrives i en håndskrevet besvarelse uten maskin, og til sammen tar de under et minutt. De er blant de billigste poengene i hele settet.
En student har skrevet en kode for en satellitt i bane og får disse resultatene. Vurder hvert av dem med en kvalitetssjekk, og si hva som mest sannsynlig er galt der noe er galt.
a) Banefarten i en sirkelbane om jorda i høyde blir .
b) Omløpstiden for den samme banen blir .
c) Radien i det som skulle vært en sirkelbane, vokser jevnt fra til i løpet av ti omløp.
d) Arbeidet fra en måleserie blir , mens kraften er positiv i alle målepunktene og bevegelsen går i positiv retning.
Å glemme massen i et nytt kraftledd. Gravitasjonsleddet står uten fordi kraften selv inneholder massen. Et nytt ledd som eller gjør det ikke, og må deles. To ledd i samme akselerasjonslinje der bare det ene har i nevneren — det er akkurat der poengene ligger.
Å endre for lite i en kodemodifikasjon. En besvarelse som kunne vært skrevet uten den nye opplysningen, gir null poeng. «Kraften er så liten at den ikke betyr noe» er ikke et svar på en deloppgave som ber deg vise endringen.
Fast på ujevne måledata. Ga for lavt svar i eksempel 3 og for høyt i oppgave 3 — retningen avhenger av hvor de tette punktene ligger. Hver bredde må hentes fra dataene.
Å glemme å regne ut fellesfarten når et fartsavhengig ledd legges til. Legger du drag til en gravitasjonskode, må regnes ut inne i løkka. Den fantes ikke der før, fordi gravitasjonen ikke avhenger av farten.
Å levere et numerisk svar uten kvalitetssjekk. Benevning, størrelsesorden, grensetilfelle og fortegn tar under et minutt til sammen, og de er poenggivende. Et bart tall er dessuten den dyreste enkeltfeilen i hele emnet — felle #1 i feilregisteret, tallsvar uten resonnement.
Å blande enheter i baneproblemer. I astronomiske enheter er ; i SI er for sola om lag . Blander du de to systemene, får du et pent tall som er galt med mange tierpotenser, og ingen feilmelding.
for i in range(N - 1):
r = np.sqrt(x[i]**2 + y[i]**2)
ax = -GM * x[i] / r**2
ay = -GM * y[i] / r**2
x[i + 1] = x[i] + vx[i] * dt
y[i + 1] = y[i] + vy[i] * dt
vx[i + 1] = vx[i] + ax * dt
vy[i + 1] = vy[i] + ay * dtSonden skulle gå i en lukket ellipsebane, men banen blir helt gal.
a) Finn de to feilene, og si for hver av dem om den er en modellfeil eller en metodefeil.
b) Hva ville halveringstesten vist for hver av dem?
c) Skriv den rettede løkka.
d) Sonden får nå en ionemotor som gir en konstant kraft i fartsretningen. Vis hvordan akselerasjonslinjene endres.
e) Forklar hvorfor en slik motor over tid gjør banen større, uten å regne.
Et forsøk måler dragkraften på en modellbil i en vindtunnel ved sju vindhastigheter:
a) Passer dataene best med en lineær eller en kvadratisk dragmodell? Begrunn med tall.
b) Anslå dragkoeffisienten, og oppgi enheten.
c) Bilen har masse og settes til å rulle fritt fra på et vannrett underlag uten rullemotstand. Skriv koden som finner hvor langt den ruller før farten er halvert.
d) Uten å kjøre koden: er strekningen større eller mindre enn den ville vært med lineær drag med samme kraft ved ? Begrunn.
a) En student skriver: «Jeg fikk en spiral, så jeg reduserte med en faktor ti, og da ble den nesten borte. Problemet er løst.» Vurder svaret.
b) Hvorfor er det verre å endre for lite enn å endre litt feil i en kodemodifikasjonsoppgave?
c) En tabell med måledata har jevne intervaller. Er det da likegyldig hvilken trapesformel du bruker? Begrunn.
En komet har mekanisk energi per masseenhet . I astronomiske enheter er .
a) Kometen er i med farten . Finn energien og avgjør om banen er lukket.
b) Finn den store halvaksen og aphelavstanden, gitt .
c) Hvorfor er nettopp energien et godt måltall for å avsløre en metodefeil i en banesimulering?
d) Hvilken fart ville gitt en åpen bane fra samme startpunkt?
Begrepsbank
Begrepsbanken er flashcard- og repetisjonsstoff — den gjentar det du nettopp har lest. Hopp trygt over ved førstegangslesing; tidsanslaget for kapitlet gjelder kjernestoffet.
Den mest treffsikre kontrollen på en simulering: finn en størrelse som fysisk skal være konstant, og se om den er det.
For en svingning eller en bane er det den mekaniske energien. For et system uten ytre kraftmoment er det i tillegg spinnet.
Kontrollen er sterk av tre grunner: størrelsen er ett tall som kan følges gjennom hele forløpet, den er regnet ut på en annen vei enn koden går, og et avvik er entydig en feil — ingen fysisk mekanisme i modellen kan endre den.
En radiell -kraft utover kan ikke skilles fra en svakere tyngdekraft, så lenge den har samme avstandsavhengighet. Kometen oppfører seg nøyaktig som om sola var lettere.
Sammenslåingen er også et godt eksempel på hvorfor det lønner seg å skrive uttrykk symbolsk før man setter inn tall: strukturen blir synlig.
Trengs typisk ved nedslag, der løkka først oppdager at er blitt negativ. Brøkdelen av det siste steget er
og nedslagspunktet blir .
Samme idé ligger under trapesmetoden: begge antar rett linje mellom nabopunkt, og begge er derfor eksakte for lineære forløp og tilnærmet ellers.
Å sammenlikne et numerisk svar med et grovt overslag før man stoler på det.
Noen faste holdepunkter i mekanikk: en satellitt i lav jordbane går i om lag med omløpstid ; en fallskjermhopper i fritt fall når –; en sekundpendel er en halv meter lang; et menneske yter i størrelsesorden over tid.
Kontrollen fanger den ene feiltypen ingen annen tar: enhetsblanding. En kode som får kilometer og meter i samme regnestykke, gir et pent tall som er galt med en faktor tusen — og som ikke utløser noen feilmelding.
At trapessummen nærmer seg det riktige integralet når målepunktene ligger tettere.
Feilen i ett trapes går som , der er bredden. Summert over hele intervallet går den samlede feilen som : halverer du avstanden mellom punktene, blir feilen en firedel.
Det gjør trapesmetoden til en andreordens metode, altså bedre enn Euler–Cromer på sitt felt. For datasettet i eksempel 3 falt avviket fra til ved å legge inn ett eneste ekstra punkt i det bredeste intervallet.
Trapesmetoden overvurderer arealet under en konveks kurve (en som krummer oppover) og undervurderer det under en konkav.
Grunnen er geometrisk: en rett linje mellom to punkt på en oppoverkrummet kurve ligger over kurven, så trapeset dekker mer enn arealet.
For en fjær eller strikk, der kraften vokser stadig raskere med strekningen, ligger trapessummen derfor litt for høyt. At avviket har det fortegnet teorien forutsier, er en sterkere kontroll enn at det er lite — et lite avvik med feil fortegn er et varsel.
Den dyreste feilen i modifikasjonsoppgavene: null poeng, ikke delvis uttelling.
Regelen om at det gis poeng for en god løsningsidé selv om den ikke fullføres, forutsetter at det finnes en idé. En besvarelse som kunne vært levert uten å ha lest den nye opplysningen, viser ingenting av den ferdigheten deloppgaven tester.
En liten feil i det nye leddet er derfor mye bedre enn ingen endring. Feil fortegn eller glemt masse er et forsøk; uendret kode er det ikke.
To beslektede, men ulike oppgaver, som begge går under «numerisk integrasjon» i dagligtale.
Numerisk integrasjon av en tabell (trapesmetoden): du kjenner funksjonsverdiene og skal finne arealet under dem. Ingen differensiallikning er involvert, og svaret er ett tall.
Numerisk løsning av en differensiallikning (Euler–Cromer): du kjenner ikke funksjonen, bare loven for hvordan den endrer seg, og svaret er en hel tallrekke.
Begge finnes i eksamenssettene, og de skilles på spørsmålet: er den ukjente et areal, eller er den en funksjon av tiden?
Vanen med å alltid kjøre en simulering to ganger — én gang med den valgte steglengden og én gang med halvparten — før man rapporterer et tall.
Testen gir tre opplysninger i én kjøring: om er liten nok, om et avvik er en metodefeil eller en modellfeil, og hvor mange gjeldende siffer svaret faktisk fortjener.
Er de to kjøringene like til tre siffer, kan du oppgi tre siffer. Skiller de seg i andre siffer, kan du ikke oppgi mer enn ett — og det er en ærligere rapportering enn å skrive av alle desimalene maskinen tilbyr.
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 den aktuelle utdanningsinstitusjonen. Dette er ikke offisielt studiemateriell. Les mer.