Viser innlegg med etiketten simulering. Vis alle innlegg
Viser innlegg med etiketten simulering. Vis alle innlegg

26 juli, 2022

Heilt på kanten, del 1 - Monte Carlo

 Ei uskyldig lita oppgåve dukka opp ein dag:



Altså:

Kor stor del av eit kvadrat ligg nærare sentrum enn kanten?

Oppgåva kom frå nettsida mathigon.org, som ofte sender ut slike oppgåver på sosiale media. Mathigon er eigentleg ei interaktiv side som gjer det mogleg å bruke forskjellige digitale versjonar av konkretiseringsmateriale, veldig godt eigna for digital fjernundervisning. Denne oppgåva kan løysast eksakt eller tilnærma/numerisk. Det er jo freistande å berre stoppe der ("I think I'll stop there!"), men eg tenkte å lage eit forslag til løysing her så om du vil prøva sjølv så er det iallfall her du må stoppe lesinga. 

Simulering

Først ville eg sjå korleis dette området eigentleg såg ut. Ein velkjend "brute force"-metode er Monte Carlo-metoden. Det vil seie at ein bruker gjentatte tilfeldige eksperiment (stokastiske forsøk) til å simulere utfall for å kunne estimere noko numerisk. Du har kanskje sett korleis ein kan bruke ein slik måte til å estimere pi med. La oss ta det først. 


I Scratch-prosjektet over blir det "kasta ei mengd med prikkar på skjermen". Prikkane som havnar innafor ein gitt sirkel får ei farge (lilla) og dei som havnar utanfor får ei anna farge (grøn). Når ein kastar svært mange prikkar på skjermen vil talet på prikkar inni sirkelen delt på talet på prikker totalt bli meir og meir likt andelen sirkelarealet utgjer av heile kvadratet. Ved å køyre simulatoren over så ser du at ein så kan bruke dette til å estimere \(\pi\). 

For å klårgjere det litt meir: Ein kan gjere det litt lettare ved å tenkje seg sirkelen med radius 1. Då vil kvadratet rundt ha areal 4, medan sirkelen vil ha areal \(\pi\). Talet på prikkar inni sirkelen delt på talet på prikkar totalt vil gi eit estimatet på forholdet pi/4. Eit estimat for pi vil da bli \(\frac{4 \cdot \text{talet på prikkar inni}}{\text{prikkar totalt}}\). Ved å la simulatoren gå ei stund ser du korleis dette vil nærma seg \(\pi\approx 3.14\) etter kvart.

28 januar, 2022

På leiting etter kort

I podcasten Abels tårn kom eg over spørsmålet om kor lenge ein måtte leite etter kort før ein har ein komplett kortstokk (https://radio.nrk.no/podkast/abels_taarn/sesong/202107/l_fcf052d9-977d-400a-b052-d9977df00af5). Dette er jo som skapt for eit miniprosjekt i skjæringsfeltet mellom modellering og programmering. Det kom fleire forslag til løysing i podcasten og fleire hadde og brukt simuleringar for å koma fram til sine svar. Her har eg modellert situasjonen i eit lite Scratch-prosjekt. Idèen er lett, ein ser for seg at ein skal lage ei liste med 52 forskjellige tal ved å tilfeldig velge blant 52 tal. Oversett til kulespråk kan ein sjå for seg at det ligg 52 nummererte kuler framom seg. Så plukker ein ei kule, skriv ned talet i liste og legg den tilbake. Prosessen gjentakast og ein skriv heile tida inn tal i lista, så framt talet på kula ein trekkjer ikkje er der frå før. Så held ein tellar styr på kor mange gonger ein har plukka kuler. Det kan vera morosamt å la elevane gjette først. Intuisjonen vår kan ofte vera vanskeleg å stole på. Eg såg til dømes for meg at eg måtte trekkje nokre tusen gonger før eg hadde alle dei 52 tala i lista (som tilsvarar at ein har ein heil kortstokk). Du kan jo prøva sjølv i prosjektet nedanfor.

08 februar, 2021

Forsøk på embedding av ferdig program

Trinkets frå trinket.io kan og leggas inn som direkte køyrbare, altså slik at ein ikkje ser koden først. Ein kan uansett laste ned ein slik trinket for å kunne bruke det vidare sjølv, om ein vil. I trinketen (det kan umuleg vere eit godkjent ord i Word) nedanfor har eg simulert ein aktivitet frå boka Stokastik, som vi brukar i lærarutdanninga. Du skal trekke kuler frå ei eske, der kulane er x kvite og y raude. Du oppgjør sjølv det totale tal på kuler og kor mange som er raude. Denne kulemodellen/urnemodellen kan til dømas gjerast om til ein terningkastsimulering ved å velgje 600 kuler totalt og 100 raude. Du oppgir om du vil ha tilbakeleggjing og kor stort utval du vil trekkje ut.