Simulering av kinematikk (fysikk)#

Det å kunne løse problemer iterativt, altså å “tenke i løkker” er svært nyttig i fysikk. Det lar oss generalisere og løse problemer på flere måter. Ikke minst lar det oss løse problemer uten for komplisert matematikk. Vi skal se på et eksempel her.

Oppgave#

La oss se på hvordan vi kan simulere enkel bevegelse med programmering. Vi tar utgangspunkt i Newtons 2. lov:

\[\sum F = ma\]
\[a = \frac{\sum F}{m}\]

Vi har altså et uttrykk for akselerasjonen hvis vi kjenner til kreftene som virker på et legeme. Dersom vi gjør en forenkling og regner med at akselerasjonen er konstant i hvert lite tidsrom \(t + dt\), der \(dt\) er et lite tidssteg, kan vi bruke bevegelseslikningene for konstant akselerasjon for å regne ut fart og posisjon for et legeme:

\[v = v_0 + at\]
\[s = s_0 + v_0t + \frac{1}{2}at^2\]

La oss studerer en ball som faller med luftmotstand. Vi regner med positiv retning oppover y-aksen. Da har vi at:

\[a = \frac{\sum F}{m}\]
\[a = \frac{G - L}{m}\]

Hvis vi bruker en enkel modell for luftmotstand, \(L = -kv\), får vi:

\[a = \frac{- mg +(- kv)}{m} = -g - \frac{kv}{m}\]

La oss starte med et program som ser bort ifra luftmotstand (som vanlig…).

Oppgave (PRIMM)

  1. Se på programmet nedenfor. Forklar hva programmet gjør, linje for linje, før du kjører det.

  2. Kjør programmet og se hva du får som output. Var det som du antok? Kontroller ved å regne ut ved hjelp av penn og papir og sammenlikn svarene.

  3. Utforsk hva som skjer dersom du øker eller minker tidssteget dt. Beskriv også hva som skjer dersom du lar ballen falle på månen (\(g = 1,625 \ m/s^2\)).

  4. Endre programmet slik at det tar hensyn til luftmotstand (\(L = -kv\)). Hvordan endrer det utfallet?

  5. Lag et program som simulerer kast av ball. Du kan velge om du vil beskrive bevegelsen i én eller to dimensjoner.