Teknologi · LK20 KM7

Programmering
i naturfag

Bruk programmering til å simulere, analysere og forstå naturfaglige fenomener – fra radioaktivt henfall til Newtons lover og populasjonsdynamikk

🤔 Hvorfor programmering i naturfag?

Programmering lar oss utforske naturfaglige systemer som er for komplekse, farlige eller tidkrevende å eksperimentere med direkte. En simulator er en matematisk modell – akkurat som en atommodell eller en næringsnett-illustrasjon, men interaktiv.

LK20 KM7 sier eksplisitt: «bruke programmering til å utforske naturfaglige fenomener». Det betyr ikke at du skal bli programmerer – men at du skal forstå hva kode gjør og kunne justere enkle simuleringer.

🧩 Grunnbegreper du trenger

Variabel: Lagrer en verdi (som en boks med innhold). temperatur = 25

Løkke (loop): Gjentar kode mange ganger. for tid in range(100):

if-setning: Tar beslutninger. if atom.henfall():

Funksjon: Gjenbrukbar kodeblokk. def beregn_kraft(m, a):

I naturfag bruker vi disse til å simulere tid, sannsynlighet, krefter og vekst.

🔗 Ressurser for å lære Python til naturfag

🐍 Python.orgOffisiell Python-dokumentasjon. Gratis. Start med «Getting Started».
📓 Jupyter NotebooksInteraktive kodebok der kode og forklaring blandes. Brukes i forskning. Prøv på jupyter.org/try
🎮 Scratch – MITVisuell programmering. Bra for å forstå løkker og logikk. Scratch.mit.edu
📊 PhET SimulationsInteraktive naturfagssimulatorer fra U Colorado. phet.colorado.edu
🔢 NumPy + MatplotlibPython-biblioteker for vitenskapelig beregning og grafer. Standard i forskning.
🌐 code.orgInteraktive kurs for nybegynnere. Norsk grensesnitt tilgjengelig.

Radioaktivt henfall er et stokastisk (tilfeldig) fenomen – hvert atom har en fast sannsynlighet for å henfalle per tidsenhet. Kode lar oss simulere dette med tusenvis av atomer.

☢️ radioaktivt_henfall.js – simuler N atomer over T sekunder
Klikk «Kjør simulering» for å se resultatet
🔑 Hva koden gjør: Linje 8: Beregner sannsynligheten for at ett atom henfaller per sekund fra halvveringstiden. Linje 13–17: For hvert tidssteg, gå gjennom alle N atomer og la et tilfeldig tall avgjøre om det henfaller (stokastikk). Resultatet er eksponentiell henfallskurve med naturlig statistisk støy. 🧪 Prøv selv: Endre halvveringstid til 10 eller 50 og kjør på nytt. Endre N_start til 100 – legg merke til mer statistisk støy!

Newtons bevegelseslover kan simuleres numerisk: beregn akselerasjon fra krefter, oppdater hastighet, oppdater posisjon. Denne metoden (Euler-integrasjon) brukes i videospill og romsonder.

🍎 newton_fall.js – fritt fall med og uten luftmotstand
Klikk «Kjør simulering»
🔑 Hva koden gjør: Euler-integrasjon: beregner akselerasjon fra kreftene (linje 23, 28), legger akselerasjon til hastighet (×dt), legger hastighet til posisjon (×dt). Dette er akkurat det GPS-satellitter og romplaner bruker. Liten dt = mer nøyaktig simulering. 🧪 Prøv selv: Endre k_luft til 0 for å fjerne luftmotstand. Endre masse – se at terminalhastig het endrer seg men fallkurven er den samme uten luftmotstand (Galileo!).

Lotka-Volterra-ligningene beskriver rovdyr–byttedyr-dynamikk. To differensialligninger simulerer samspillet mellom for eksempel ulv og elg – og gir de karakteristiske svingningene.

🐺 lotka_volterra.js – rovdyr/byttedyr-dynamikk
Klikk «Kjør simulering»
🔑 Hva koden gjør: dx (endring i elgbestand) = vekst (alpha×x) minus predasjon (beta×x×y). Mange elg + mange ulv = stor predasjon. Dyner av populasjonene gir de karakteristiske svingende kurvene. Ulvens topp kommer etter elgens topp – det tar tid å formere seg. 🧪 Prøv selv: Endre y = 0 (ingen ulv) – hva skjer med elgen? Endre alpha = 1.5 – raskere elgvekst. Hva skjer med svingningene?

Programmering brukes til å analysere måledata fra forsøk: beregne gjennomsnitt, standardavvik, plotte grafer og finne lineære sammenhenger. Skriv inn dine egne tall!

📊 dataanalyse.js – statistikk og regresjon på egne måledata
Klikk «Analyser data»
🔑 Hva koden gjør: Beregner gjennomsnitt, standardavvik og lineær regresjon på dine data. Regresjonslinja gir beste rette linje gjennom punktene. r nær ±1 = sterk lineær sammenheng. r nær 0 = svak/ingen lineær sammenheng (men kan ha kurvelineær sammenheng!). 🧪 Prøv selv: Bytt ut tallene i x_data og y_data med data fra ditt eget forsøk. Endre enhetene. Analyser sammenhengen mellom pH og enzymaktivitet, kraft og akselerasjon, eller CO₂-konsentrasjon og temperatur.