3.4
Numeriske metoder for bevegelse

3.4 Numeriske metoder for bevegelse

Eulers metode i små tidssteg, fall med luftmotstand i Python, valg av tidssteg og modell mot måling.

80 min
14 oppgaver
Eulers metodeTidsstegPythonLuftmotstandTerminalfartModell mot måling
Du leser den lesevennlige versjonen
Din fremgang i kapitlet
0 / 14 oppgaver

Når akselerasjonen ikke står stille

Bevegelseslikningene fra kapittel 2.3 er effektive, men de har én forutsetning: akselerasjonen må være konstant. For en stein i fritt fall uten luftmotstand holder det, for der er tyngden den eneste kraften og a=ga = g hele veien.

Med luftmotstand går det ikke. Luftmotstanden L=kv2L = kv^2 vokser med farten, og med positiv retning nedover gir Newtons andre lov a=g−kmv2\displaystyle a = g - \frac{k}{m}v^2. Akselerasjonen endrer seg altså med farten, og farten endrer seg med akselerasjonen. Det finnes ingen fast verdi av aa vi kan sette inn i bevegelseslikningene.

Løsningen er å dele bevegelsen opp i korte tidssteg. Over et kort nok steg endrer farten seg så lite at akselerasjonen nesten er konstant. Da kan vi regne steget ut, regne ut akselerasjonen på nytt med den nye farten, og fortsette. Det blir mange steg, men hvert steg er enkelt, og et program gjør dem på et øyeblikk.

Eulers metode -- ett lite steg av gangen

Ideen bak Eulers metode kommer rett fra definisjonene. Akselerasjon er fartsendring per tid, så over et kort tidssteg er Δv=a Δt\Delta v = a\,\Delta t. Fart er posisjonsendring per tid, så Δs=v Δt\Delta s = v\,\Delta t. Ett steg består da av fire ting: regn ut akselerasjonen fra kreftene med farten du har nå, finn ny fart vny=v+a Δtv_{\text{ny}} = v + a\,\Delta t, finn ny posisjon sny=s+vny Δts_{\text{ny}} = s + v_{\text{ny}}\,\Delta t, og legg Δt\Delta t til tiden.

Ta en fallskjermhopper på 80 kg med k=0,25k = 0{,}25 kg/m før skjermen åpnes, og bruk et grovt tidssteg på 1 s. I starten er farten null, så a=9,81a = 9{,}81 m/s², og etter ett sekund er farten 9,81 m/s. Nå er det litt luftmotstand, og akselerasjonen faller til 9,51 m/s². Etter to sekunder er farten 19,32 m/s, akselerasjonen 8,64 m/s², og etter tre sekunder er farten 27,96 m/s. Uten luftmotstand ville den vært 29,4 m/s. Vi ser hvordan luftmotstanden bremser økningen litt mer for hvert steg.

Når akselerasjonen faktisk er konstant, gir metoden helt riktig fart. En bil som akselererer med 2 m/s² fra ro, får 2, 4, 6, 8 og 10 m/s etter fem steg på ett sekund, akkurat som v=atv = at. Feilen kommer først når akselerasjonen endrer seg innenfor et steg, og den blir mindre jo kortere steget er.

📝Oppgave Quiz 1

Fra idé til program

I Python blir Eulers metode en while-løkke. Før løkka setter vi konstantene og startverdiene. Inne i løkka står de fire linjene for ett steg, og betingelsen i while bestemmer når vi er ferdige, for eksempel while s < 100 for et fall på 100 m. Lister tar vare på tidene og fartene, så vi kan plotte farten mot tiden etterpå.

En ball på 0,50 kg med k=0,0024k = 0{,}0024 kg/m sluppet fra 100 m gir et lærerikt resultat. Programmet bruker 4,88 s på fallet, og farten ved bakken er 35,5 m/s. Uten luftmotstand ville fallet tatt 4,52 s og endt i 44,3 m/s. Terminalfarten er vt=mg/k=45,2v_t = \sqrt{mg/k} = 45{,}2 m/s, og den gir en rask kontroll: farten i programmet skal flate ut mot vtv_t og aldri gå forbi. Gjør den det, er fortegnet på luftmotstanden trolig feil.

To valg avgjør om programmet er til å stole på. Det ene er tidssteget. Feilen i Eulers metode er omtrent proporsjonal med Δt\Delta t, så ti ganger mindre steg gir omtrent ti ganger mindre feil. Kjør programmet med halvt så stort steg: endrer svaret seg lite, er steget lite nok. Det andre er stoppbetingelsen. while v > 0 stopper når en ball snur på toppen, ikke når den treffer bakken, så tenk gjennom hva løkka egentlig venter på.

Luftmotstanden trenger ikke være kv2kv^2. Svært små og lette ting, som støv og frø, følger bedre L=kvL = kv. I programmet er det bare én linje som endres, og det er nettopp styrken: alle krefter vi kan skrive som en formel, kan stå i akselerasjonslinja.

📝Oppgave Quiz 2

Modell mot måling

Et program er bare så godt som modellen i det. For å teste modellen slipper vi noe lett, for eksempel en muffinsform av papir på 0,80 g, filmer fallet og leser av hvor langt den har falt hvert tidels sekund. Etter 1,0 s har formen falt 1,14 m. Uten luftmotstand ville den falt 4,9 m, så luftmotstanden er alt annet enn liten.

Så lar vi programmet prøve seg fram. Vi simulerer fallet med flere verdier av kk og lagrer posisjonen ved de samme tidene som i målingene. For hver kk regner vi ut summen av de kvadrerte avvikene mellom modell og måling. Kvadreringen gjør at positive og negative avvik ikke opphever hverandre. For muffinsformen blir summen minst for k=5,0⋅10−3k = 5{,}0 \cdot 10^{-3} kg/m, og da treffer modellen alle målepunktene innenfor en centimeter.

Svaret kan kontrolleres uten programmet. Den siste delen av fallet er nesten rett i ss–tt-grafen: formen faller med terminalfarten, som stigningstallet gir til 1,24 m/s. Da er k=mg/vt2=5,1⋅10−3k = mg/v_t^2 = 5{,}1 \cdot 10^{-3} kg/m, nesten det samme.

Til slutt vurderer vi selve modellen. Passer kurven dårlig for alle verdier av kk, kan det være formen på modellen som er feil, og vi prøver L=kvL = kv. En annen test er å legge to former i hverandre: med L=kv2L = kv^2 skal terminalfarten bli 2\sqrt{2} ganger så stor, med L=kvL = kv dobbelt så stor. Slik blir programmet ikke bare en kalkulator, men et verktøy for å finne ut hvordan naturen faktisk oppfører seg.

📝Oppgave Quiz 3

Oppsummering

Når akselerasjonen endrer seg underveis, gjelder ikke bevegelseslikningene. Eulers metode deler bevegelsen i korte tidssteg og bruker definisjonene direkte: Δv=a Δt\Delta v = a\,\Delta t og Δs=v Δt\Delta s = v\,\Delta t, med akselerasjonen regnet ut på nytt fra kreftene i hvert steg. Med konstant akselerasjon gir metoden riktig fart, og ellers blir feilen mindre jo kortere steget er.

I Python blir metoden en løkke med konstanter, startverdier, fire linjer per steg og en stoppbetingelse. Et fall med luftmotstand L=kv2L = kv^2 eller L=kvL = kv krever bare en annen akselerasjonslinje, og terminalfarten er en rask kontroll av at programmet regner riktig. Tidssteget prøves ved å halvere det og se om svaret endrer seg.

Til slutt møtte vi modell mot måling: vi sammenligner programmet med målinger fra video eller forsøk, prøver oss fram med kk til summen av de kvadrerte avvikene er minst, kontrollerer med den målte terminalfarten og vurderer om modellen har riktig form.

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.