Tilbake
5.6

5.6 Simulering med digitale verktøy

Monte Carlo-metoden i GeoGebra og Python, store talls lov.

45 min
8 oppgaver
SimuleringMonte CarloGeoGebraStore talls lov
Du leser den lesevennlige versjonen
Din fremgang i kapitlet
0 / 8 oppgaver

Når regnestykket blir for vanskelig — la maskinen kaste terningene

En analytiker i et forsikringsselskap får et spørsmål fra ledelsen: «Hvor stor er sannsynligheten for at samlede skadeutbetalinger neste år overstiger budsjettet?» Utbetalingene avhenger av tusenvis av kunder, vær, trafikk og tilfeldigheter — et analytisk regnestykke ville blitt uoverkommelig. Men analytikeren har et ess i ermet: hun lar datamaskinen spille gjennom neste år ti tusen ganger, med tilfeldige utfall hver gang, og teller hvor ofte budsjettet sprekker.

Dette er simulering: å etterligne et tilfeldig eksperiment digitalt, gjenta det tusenvis av ganger, og lese svaret ut av mønstrene som oppstår. Når analytiske beregninger blir kompliserte — eller når vi vil studere et system over tid — er simulering ofte det raskeste og noen ganger det eneste farbare verktøyet. Næringslivet bruker det daglig: simulere kundeankomster i en butikk, estimere risiko i finansporteføljer, planlegge lagerbeholdning under usikker etterspørsel og teste prisstrategier før de rulles ut.

I dette kapittelet lærer du prinsippet bak Monte Carlo-metoden, hvordan du setter opp enkle simuleringer i GeoGebra og Python, hva store talls lov lover oss — og, like viktig, hvordan du tolker simuleringsresultater med et kritisk blikk.

Monte Carlo-metoden og store talls lov

Navnet kommer fra kasinobyen Monte Carlo, og ideen er like enkel som den er kraftig. Vil du vite sannsynligheten for en hendelse AA? Gjenta eksperimentet nn ganger med tilfeldige tall, tell antall gunstige utfall ff, og bruk den relative frekvensen som estimat:

P(A)fnP(A) \approx \frac{f}{n}

Garantien for at dette virker, heter store talls lov: når antall forsøk vokser mot uendelig, nærmer den relative hyppigheten seg den teoretiske sannsynligheten, fnP(A)\displaystyle \frac{f}{n} \to P(A). Estimatet er aldri eksakt, men usikkerheten krymper med antall forsøk — typisk som 1n\displaystyle \frac{1}{\sqrt{n}}. Det betyr en viktig tommelfingerregel: vil du ha omtrent to gyldige desimaler, trenger du rundt n10000n \approx 10\,000 repetisjoner. Og fordi feilen avtar med kvadratroten, må du firedoble antall forsøk for å halvere usikkerheten.

Store talls lov er ikke bare et simuleringsverktøy — den er selve grunnlaget for forsikringsbransjen. Selskapet kan umulig forutsi om akkurat du får en skade neste år. Men gjennomsnittet over mange kunder er svært forutsigbart: blant 100 000 kunder kan andelen med skade anslås med stor presisjon, og dermed kan premiene settes riktig. Enkeltutfall er kaos; gjennomsnitt av mange er nesten lovmessige.

Merk likevel hva loven ikke sier: den lover ikke at en mynt som har vist kron fem ganger, «skylder» oss mynt. Hvert kast er like uavhengig som før — det er andelene over lange serier som stabiliserer seg, ikke de neste enkeltutfallene.

📝Oppgave Quiz 1

Fra idé til kode — terninger i GeoGebra og Python

La oss gjøre metoden konkret med et eksperiment vi kan fasitsjekke: kast to terninger og estimer sannsynligheten for at summen blir 7. Teorien kjenner vi — av de 36 like sannsynlige utfallene gir 6 av dem sum 7, så P(sum=7)=636=160,1667\displaystyle P(\text{sum}=7) = \frac{6}{36} = \frac{1}{6} \approx 0{,}1667.

I GeoGebra lager vi tilfeldige kast med kommandoen RandomBetween. I CAS- eller regnearkvisningen kan du skrive

n = 1000
kast1 = RandomBetween(1, 6, n)
kast2 = RandomBetween(1, 6, n)

og deretter telle hvor ofte summen av parene blir 7. I Python blir hele eksperimentet noen få linjer:

import random
n = 10000
antall7 = sum(1 for _ in range(n)
               if random.randint(1,6) + random.randint(1,6) == 7)
print(f"Estimert P(sum=7) = {antall7/n:.4f}")

Kjører du koden, får du kanskje 0,1641 én gang og 0,1689 neste gang — aldri nøyaktig 16\displaystyle \frac{1}{6}, men med n=10000n = 10\,000 ligger estimatet vanligvis innenfor cirka ±0,004\pm 0{,}004 av den sanne verdien. Kjør gjerne programmet flere ganger og se hvordan estimatene klumper seg rundt fasiten: det er store talls lov du ser i sving.

Dette peker på den kritiske holdningen en simulerende statistiker må ha. Et simuleringsresultat er et estimat med usikkerhet, ikke en fasit. Spør alltid: Er nn stort nok for presisjonen jeg trenger? Får jeg omtrent samme svar om jeg kjører på nytt? Og — viktigst av alt — etterligner modellen min virkeligheten godt nok? En perfekt simulering av en feil modell gir presise, men gale svar. Når fasiten finnes, slik som her, er den dessuten en gyllen mulighet til å validere oppsettet før du løsner simuleringen på problemer uten kjent svar.

📝Oppgave Quiz 2

Oppsummering: ti tusen virkeligheter på et sekund

Forsikringsanalytikeren fra innledningen trengte aldri den umulige formelen: ved å la maskinen spille gjennom neste år tusenvis av ganger fikk hun et pålitelig estimat på sannsynligheten for budsjettsprekk. Det er essensen i simulering — digital etterligning av tilfeldighet, der mønstre i mange gjentakelser avslører sannsynlighetene.

Verktøykassen er kompakt. Monte Carlo-metoden sier: gjenta forsøket nn ganger, tell de gunstige utfallene ff, og estimer P(A)fn\displaystyle P(A) \approx \frac{f}{n}. Store talls lov garanterer at estimatet treffer i det lange løp — den relative frekvensen stabiliserer seg mot den teoretiske sannsynligheten — og den samme loven er grunnen til at forsikringsselskaper kan forutsi andelen skader blant 100 000 kunder uten å kunne si noe om den enkelte.

Praktisk husker vi presisjonsregelen: usikkerheten avtar som 1n\displaystyle \frac{1}{\sqrt{n}}, så to gyldige desimaler krever rundt 10 000 repetisjoner, og halvert feil krever firedoblet innsats. Verktøyene er lett tilgjengelige — RandomBetween i GeoGebra og random.randint i Python gjør terningkast, kundeankomster og porteføljer til noen få kodelinjer.

Og så det kritiske blikket, som skiller analytikeren fra kalkulatoren: en simulering gir estimater, aldri eksakte svar; kjør flere ganger og se om resultatene er stabile; og husk at en presis simulering av en dårlig modell bare gir presist gale svar. Med disse vanene på plass har du et verktøy som rekker dit formlene ikke når — og i neste hovedkapittel møter du fordelingene som ofte lar deg slippe å simulere i det hele tatt.

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.