Dynamisk simulering |
Hans-Petter Ulven
I en fysikktime fikk jeg en elev til å notere temperaturen i en kaffekopp hvert femte minutt.
Resultatet ble slik:
Tid Temp [min] [gr.C] 0 86 5 72 10 64 15 57.5 20 53 25 48 30 45 35 42 40 39.5 45 37 50 35 55 33.5 60 32 65 31 70 30 75 28.5 80 27 85 27 90 26
Webstart av siste versjon av GeoGebra:
Dette høres avansert ut, men er egentlig lettere enn all den kompliserte matematikken med derivasjon og differensialligninger.
Jeg tror denne type iterative prosesser med fordel kunne introduseres mye tidligere for elevene enn det gjøres i skolen idag,
og har stor tro på at dette ville gjort introduksjonen av integrasjon, derivasjon og differensialligninger mye lettere senere.Newton fant ut at temperaturfallet per. tidsenhet for et system var proporsjonalt med temperaturforskjellen i forhold til utsiden av systemet,
hvilket kan formuleres slik:
Temperaturendring/tidsintervall = - k (Temperatur - Romtemperatur) De som driver med dynamisk simulering, formulerer formelen slik:
Temperaturendring = - k (Temperatur - Romtemperatur) tidsintervall og lager følgende rekursive modell:
Ny temperatur = Gammel temperatur + Temperaturendring Dette gir følgende modell:
Startverdier:
T0 =86
t0 =0
Rekursjon:
Tny = Tgammel - k (Tgammel - Trom) tidsintervall
tny = tgammel + tidsintervall
Da er vi klar for å la regnearket i GeoGebra gjøre arbeidet for oss:
- Vi legger inn startverdien for temperaturen som glider: T_0=86
- Konstantene er også kjekke å ha som glidere: k=0.1 og T_r=20
- Legger inn startverdiene for t og T i A1 og B1: A1=0 og B1=T_0
- Rekursjonen legges så inn i:
C1=-k*(B1-T_r), A2=A1+3 og B2=B1+C1
(Vi bruker 3 minutter som tidsintervall, under dette gir i hvert fall min maskin litt pusteproblemer...)- Så kopierer vi A, B og C kolonnen 90 ganger nedover...
(Kan ta ganske lang tid...)- Så merker vi A- og B-kolonnen, høyreklikker og velger: Lag liste med punkter
- Til slutt kalibrer vi modellen med k, og da ser det omtrent slilk ut:
- d
Prøv å simulere fritt fall med luftmotstand (hopp fra fly med og uten fallskjerm):
Startverdier:
Rekursjon:
|
I den lille byen Renvik har familiene Rikerud og Grisk nettopp startet en kjemisk fabrikk, Splux AS, som produserer innsektmidlet KillAll. All produksjon eksporteres til fattige utviklingsland, da innsektmidlet har visse bivirkninger også for mennesker. Splux AS vil hvert år slippe ut 1200 kg gift i den tilliggende idylliske innsjøen Renviksvannet, da de ikke er interesserte i unødige utgifter på sikker destruering av produksjonsavfall.
Vi regner med at 20% av giften i sjøen hvert år forsvinner på grunn av nedbrytning og utskifting av vann i innsjøen.
a) Vi antar for enkelthets skyld at all giften slippes ut en gang i starten av året og at dette starter i å n=1. Hvor mye gift er det i sjøen i det 10de året?
c) På hvilket nivå vil giftmengden stabilisere seg etter mange år?
d) Hvor mye gift kan bedriften slippe ut i året hvis myndighetene påbyr Splux AS å sørge for at giftmengden aldri
overstiger 500 kg?
Etter en ide av en av pionerene innen IT og matematikk fagdidaktikk, Viggo Sadolin fra Danmark.
Vi kan bruke følgende tall:
Populasjon: (P) 1000 personer Syke: (S) 10 personer (Personer som starter epidemien) Kontakter pr. dag: (k) 10 personer/dag Sannsynlighet for å smitte ved en kontakt: (ssh) 0,08 Sykdommens varighet: (v) 3 dager Noen mellomregninger på endringen i hvert trinn:
Blir syke: S*k*ssh*(Friske/P) (Egentlig litt feil, se helt til slutt for en mer korrekt utrregning av denne sannsynligheten)
Blir friske og immune (I): S/v (Hvis de syke friskmeldes jevnt, vil i gjennomsnitt S/v blir friske pr. dag.)
Parametere:
P=1000
k = 10
ssh = 0.08
v = 3
Startverdier:
S0 = 10
I0 = 0
F0 = P0 - S0 -I0
t0 = 0
Rekursjon:
Fi+1 = Fi - Si*k*ssh*(Fi/P)
Si+1 = Si + Si*k*ssh*(Fi/P) - P/v
Ii+1 = Ii + P/v
(For de som er interessert i å bruke det de har lært i sannsynlighetsregning...)
For en Frisk:
Sannsynlighet for å bli smittet i løpet av en dag med k kontakter: p=1-P(Ikke bli smittet av noen av kontaktene)
=1-(P(ikke bli smittet ved en kontakt))^k
=1-(1-P(bli smittet av en kontakt))^k
=1-(1-P(kontakt er syk)*P(bli smittet|kontakt er syk))^k
=1-(1-Syke/(Pop-1)*ssh)^k
Altså:
Blir syke: Friske*(1-(1-Syke/(Pop-1)*ssh)^k)
)