Modellering#

Kun virkeligheten er virkeligheten i seg selv.

—Andreas Haraldsrud (og sikkert mange andre også)

Når vi mennesker skal beskrive virkeligheten, lager vi en modell som beskriver noe, men ikke alt, om det vi observerer. Hver modell har sine styrker og svakheter, og ingen modeller representerer virkeligheten eksakt. Modeller er bare forenklinger, men dette er egentlig en nødvendighet for å kunne systematisere virkeligheten. Som sagt er virkeligheten for kompleks til å representeres eksakt.

Se på bildene nedenfor. Hva viser bildene?

For hver enkelt modell er det viktig å være oppmerksom på begrensningene og forutsetningene som gjelder. Dette er enklere å bli bevisst på når vi lager og/eller utforsker modellene selv, og dette er lettere å få til med programmering. Programmering er et viktig verktøy for å forstå og utforske matematiske modeller, og på den måten få bedre innsikt i et naturvitenskapelig problem.

En modelleringsprosess innebærer flere trinn. For det første må vi ha en observasjon eller et fenomen vi ønsker å studere. Ut fra visse egenskaper ved dette systemet lager vi en modell som skal beskrive systemet under visse betingelser. En modell er en forenklet representasjon av virkeligheten. Denne modellen kan vi teste, for eksempel gjennom eksperimenter eller simuleringer. Da får vi data som vi kan bruke til å evaluere modellens gyldighet. Deretter kan vi eventuelt justere modellen og gjøre nye simuleringer og målinger.

Modellering er altså en kontinuerlig prosess der modeller hele tiden evalueres og justeres opp mot virkeligheten. Programmering kan gjøre denne prosessen enklere fordi vi med noen tastetrykk kan endre modellen og observere utfallet av dette.

Når en arbeider med modeller, åpner det for utforsking og kritisk refleksjon. En kan endre både rammebetingelser og variabelverdier med et tastetrykk og utforske konsekvensene for modellen. Det finnes ikke riktige og gale svar, og differensiering er en naturlig del av arbeidsformen. Modeller kan variere i kompleksitet, og en viktig del av modelleringsprosessen er å undersøke modellene opp mot virkeligheten, for eksempel med systematiske eksperimenter og observasjoner.

Diskrete modeller#

En diskret modell er en modell som beskriver tilstanden i et system på gitt tidspunkter. Det vil si at vi ikke har en kontinuerlig funksjon som beskriver tilstandene i systemet på et hvert tidspunkt. Et eksempel er en diskret populasjonsmodell som beskriver størrelsen på en gaupebestand hver andre måned. En kontinuerlig modell vil derimot beskrive populasjonen på ethvert tidspunkt. Regresjonsmodeller er kontinuerlige modeller fordi modellene er kontinuerlige funksjoner. Det samme er modeller basert på differensiallikninger, som vi skal se på seinere.

Diskrete modeller kan beskrives med differenslikninger. Eksempelet med gaupepopulasjonen kan beskrives som en differenslikning: Antall gauper er lik antall gauper ved forrige tidssteg pluss en endring. Det er denne endringen vi skal finne ut av når vi modellerer. Et annet eksempel på sammenhenger som kan beskrives som differenslikninger, er mønsteret i tallfølger.

Differenslikninger

En differenslikning er en likning som beskriver forskjellen mellom etterfølgende verdier til en funksjon av diskrete variabler.

La oss se på et eksempel på en diskret modell. Her ser vi på modeller som beskriver utslipp av CO\(_2\). Vi bygger opp modellen gradvis.

Oppgave

Vi ser først på en diskret modell der utslippet øker med en prosentvis andel hvert år. Følgende modell kan da beskrive utslippet:

\[u_{n+1} = u_n + au_n\]

Her er u antall tonn CO\(_2\) som slippes ut per innbygger, og a er en parameter som bestemmer utslippsraten (vekstfaktoren). Tilpasning av slike parametere er en viktig del av modellering. Parameterne representerer ulike forhold i det virkelige livet, men det kan være vanskelig å finne gode verdier for dem. Ofte bruker vi reelle data til dette.

Oppgave 1:

Forklar for hverandre med ord hva modellen sier. Drøft også i hvilke sammenhenger det kan være hensiktsmessig å bruke en slik modell. Er det en realistisk modell i noen sammenhenger?

Oppgave 2:

Fyll inn det som mangler i programmet nedenfor for å simulere utslippet. Dersom du vil, kan du selvfølgelig viske ut alt og bygge programmet fra grunnen av. Varier med ulike verdier av a og forklar betydningen av denne parameteren.

Oppgave 3:

Hva er utslippet i 2100? Tror du dette er realistisk? Finn utslippet i 2018 etter denne modellen, og sammenlikn med det reelle utslippet i Norge og India ved hjelp av data som er gitt i disse tekstfilene: Norge og India.

Oppgave 4:

Varier utslippsraten a slik at modellen passer best mulig med utslippet til enten Norge eller India. Du kan lese inn filene i programmet og plotte de reelle dataene i samme graf som modellen din. Kommenter hvor godt modellen passer med dataene. Hva er i så fall gyldighetsområdet til modellen?

Oppgave 5:

La oss utvide modellen og innføre flere parametere. Vi kan tenke oss en begrensningsparameter b som sier oss hva hver person maksimalt kan oppnå av utslipp. Følgende modell tar hensyn til dette:

\[u_{n+1} = u_n + au_n\left(1 - \frac{u_n}{b}\right)\]

Beskriv modellen, og prøv å forklare alle leddene og faktorene. Hva skjer med uttrykket i parentesen når u øker?

Oppgave 6:

Erstatt den gamle modellen med den nye modellen. Beskriv det du ser.

Oppgave 7:_

Eksperimenter med a og b slik at modellen passer godt med dataene.

Oppgave 8:

I 2015 setter vi inn tiltak som gjør at veksten stagnerer og blir negativ (minker med 4,5 % hvert år). Legg dette inn i simuleringen og kommenter utviklingen. Er utviklingen realistisk?

Ekstraoppgaver: Utforsk modellen

  • Finn ut hvor store tiltakene (a) må være for at vi bare skal slippe ut 2 tonn CO2 per innbygger i Norge i 2100.

  • Gjenta simuleringene med India. Lag en modell som følger omtrent samme utvikling som en av modellene for Norge. Når vil India nå samme topputslipp som Norge?