Simulerings-eksperiment - Fysikk/Matematikk

Like dokumenter
Kap 02 Posisjon / Hastighet / Akselerasjon 2D - Bevegelse langs en rett linje

ProFag Realfaglig programmering

Differensiallikninger definisjoner, eksempler og litt om løsning

Kan vi forutse en pendels bevegelse, før vi har satt den i sving?

Enkel matematikk for økonomer. Del 1 nødvendig bakgrunn. Parenteser og brøker

TDT4105 IT Grunnkurs Høst 2014

Fysikkmotorer. Andreas Nakkerud. 9. mars Åpen Sone for Eksperimentell Informatikk

Kollisjon - Bevegelsesmengde og kraftstøt (impuls)

FY0001 Brukerkurs i fysikk

Newtons (og hele universets...) lover

Løsningsforslag til øving 4: Coulombs lov. Elektrisk felt. Magnetfelt.

4 Differensiallikninger R2 Oppgaver

Prosjekt 2 - Introduksjon til Vitenskapelige Beregninger

2 Om statiske variable/konstanter og statiske metoder.

Læreplan i Programmering og modellering - programfag i studiespesialiserende utdanningsprogram

Kanter, kanter, mange mangekanter. Introduksjon: Steg 1: Enkle firkanter. Sjekkliste. Skrevet av: Sigmund Hansen

Det du skal gjøre i denne oppgava er først å sette opp bakgrunnen til spillet og så rett og slett å få firkanter til å falle over skjermen.

TFY4104 Fysikk. Institutt for fysikk, NTNU. Høsten Obligatorisk numerikkøving. Innleveringsfrist: Søndag 13. november kl

UNIVERSITETET I OSLO

Ubestemt integrasjon.

UNIVERSITETET I OSLO. Introduksjon. Det matematisk-naturvitenskapelige fakultet 1.1

Tetris. Introduksjon. Skrevet av: Kine Gjerstad Eide. Lag starten på ditt eget tetris spill!

Det matematisk-naturvitenskapelige fakultet Økt forståelse for matematikk ved bruk av programmering Sinusseminar 2019

Elektrisk potensial/potensiell energi

FAG: Fysikk FYS118 LÆRER: Fysikk : Per Henrik Hogstad (fellesdel) Kjetil Hals (linjedel)

Newtons lover i én dimensjon

Newtons lover i én dimensjon

Matematikk og fysikk RF3100

Hvilken BitBot går raskest gjennom labyrinten?

UNIVERSITETET I OSLO

Hoppehelt. Introduksjon. Steg 1: Streken. Sjekkliste. Skrevet av: Geir Arne Hjelle

Kapittel august Institutt for geofag Universitetet i Oslo. GEO En Introduksjon til MatLab. Kapittel 2.

Her skal du lære å programmere micro:biten slik at du kan spille stein, saks, papir med den eller mot den.

Notat 2, ST Sammensatte uttrykk. 27. januar 2006

MAT-INF 1100: Obligatorisk oppgave 1

Utførelse av programmer, funksjoner og synlighet av variabler (Matl.)

Matematikk og fysikk RF3100

Verden. Introduksjon. Skrevet av: Kine Gjerstad Eide og Ruben Gjerstad Eide

Zelio Soft grunnkurs. Zelio Logic reléerstatter programmering

Løsningsforslag til øving 5

Eksamen REA3024 Matematikk R2

Matematikk 1 Første deleksamen. Løsningsforslag

Newtons lover i én dimensjon

PXT: Det regner mat! Introduksjon. Steg 1: Grunnlag. Sjekkliste. Skrevet av: Helene Isnes

Del 1. 3) Øker eller minker den momentane veksthastigheten når x = 1? ( )

Mars Robotene (5. 7. trinn)

PXT: Himmelfall. Introduksjon. Skrevet av: Helene Isnes og Julie Revdahl

Enkel matematikk for økonomer 1. Innhold. Parenteser, brøk og potenser. Ekstranotat, februar 2015

Løsning, gruppeoppgave om corioliskraft og karusell, oppgave 7 uke 15 i FYS-MEK/F 1110 våren 2005

1 MAT100 Obligatorisk innlevering 1. 1 Regn ut i) iii) ii) Regn ut i) ii)

1 C z I G + + = + + 2) Multiplikasjon av et tall med en parentes foregår ved å multiplisere tallet med alle leddene i parentesen, slik at

Lærerveiledning - Snøballkrig

Fysikkolympiaden 1. runde 27. oktober 7. november 2008

Steg 1: Piler og knappetrykk

Matlab-tips til Oppgave 2

FY1001/TFY4145 Mekanisk fysikk. Institutt for fysikk, NTNU. Høsten Veiledning: november. Innleveringsfrist: Onsdag 16. november kl 14.

Impuls, bevegelsesmengde, energi. Bevaringslover.

TFY4106 Fysikk. Institutt for fysikk, NTNU. Løsningsforslag til øving 4. m 1 gl = 1 2 m 1v 2 1. = v 1 = 2gL

Utførelse av programmer, metoder og synlighet av variabler i JSP

Verden. Steg 1: Vinduet. Introduksjon

HAVBØLGER. Her skal vi gjennomgå den enkleste teorien for bølger på vannoverflaten:

Emnebeskrivelse og emneinnhold

LP. Leksjon 9: Kapittel 13: Nettverk strøm problemer, forts.2

Løsningsforslag til ukeoppgave 4

Eksempelsett R2, 2008

TDT4105 Informasjonsteknologi, grunnkurs (ITGK)

UNIVERSITETET I OSLO

Løsningsforslag oppgave 1: En måte å løse oppgave på, er å først sette inn tall for de eksogene variable og parametre, slik at vi får

EKSAMEN Løsningsforslag

Matematikk 1 (TMA4100)

Enkel Keynes-modell for en lukket økonomi uten offentlig sektor

Kapittel 4. Algebra. Mål for kapittel 4: Kompetansemål. Mål for opplæringen er at eleven skal kunne

FAG: Fysikk FYS121 LÆRER: Fysikk : Per Henrik Hogstad (fellesdel) Kjetil Hals (linjedel)

Norgestur. Introduksjon. Steg 1: Et norgeskart. Sjekkliste. Scratch. Skrevet av: Geir Arne Hjelle

UNIVERSITETET I OSLO

Brukerveiledning digital eksamen via WISEflow

Vektorstørrelser (har størrelse og retning):

Repetisjonsoppgaver kapittel 0 og 1 løsningsforslag

Prosjektoppgave i FYS-MEK 1110

Del 1. Skisse av reguleringsteknisk system

UNIVERSITETET I OSLO

Kapittel 6 Fart og akselerasjon hva krefter kan få til Svar og kommentarer til oppgavene

Eksempeloppgave REA3024 Matematikk R2. Bokmål

MA1102 Grunnkurs i analyse II Vår 2014

Oppgaver og fasit til seksjon

Notat 2, ST januar 2005

Beregninger i ingeniørutdanningen

MA1102 Grunnkurs i analyse II Vår 2019

UNIVERSITETET I OSLO

Løsningsforslag. Oppgave 1 Gitt matrisene ] [ og C = A = 4 1 B = 2 1 3

UNIVERSITETET I BERGEN Det matematisk-naturvitenskapelige fakultet. Obligatorisk innlevering 3 i emnet MAT111, høsten 2016

Poissonprosesser og levetidsfordelinger

BYFE DAFE Matematikk 1000 HIOA Obligatorisk innlevering 5 Innleveringsfrist Fredag 15. april 2016 kl 14 Antall oppgaver: 8

FYS-MEK 1110 Løsningsforslag Eksamen Vår 2014

FAG: Fysikk FYS122 LÆRER: Fysikk : Per Henrik Hogstad (fellesdel) Tore Vehus (linjedel)

2 Om statiske variable/konstanter og statiske metoder.

Det matematisk-naturvitenskapelige fakultet. Del 4. Modellering

datatyper Hva er programmering? Variabler og Informasjonsteknologi 2 Kompetansesemål

MAT-INF 1100: Obligatorisk oppgave 1

Transkript:

Simulerings-eksperiment - Fysikk/Matematikk Tidligere dette semesteret er det gjennomført et såkalt Tracker-eksperiment i fysikk ved UiA. Her sammenlignes data fra et kast-eksperiment med data fra en tilhørende matematisk modell. Et typisk eksempel vises i figuren nedenfor (fig 1). Fig 1 Ofte får vi (av ulike grunner) et avvik mellom de eksperimentelle verdiene og verdiene fra den matematiske modellen. En av avviksgrunnene ved et slikt kasteksperiment kan være at den matematiske modellen ikke tar høyde for eventuell luftmotstand. Ved UiA utvikler vi visualiserings- og simulerings-verktøyet SimReal. I figuren nedenfor (fig 2) vises tilsvarende data fra et kast-eksperiment med tilhørende matematiske modell vha dette verktøyet. Fig 2 Det kan se ut til at vi kanskje spesielt må ta hensyn til luftmotstand når vi skal utarbeide en matematisk modell som gir en god beskrivelse av et slikt kast. Derfor skal vi i dette simulerings-eksperimentet se litt nærmere på studiet av luftmotstand.

En matematisk modell som inkluderer luftmotstand, kan ofte bli for kompleks til at den kan løses med penn og papir. Da kan det ofte være hensiktsmessig (og også nødvendig) å ta i bruk teknologi, numeriske beregnigner og programmering for å løse problemet. I dette programmerings-eksperimentet skal vi se litt nærmere på slike numeriske beregninger i SimReal. Det kreves ingen programmeringserfaring for å delta i dette eksperimentet. Hensikten med eksperimentet er å undersøke i hvilken grad ulike typer simulerings-opplegg kan fungere i fysikk-undervisningen og hvilke eventuelle problemer som oppstår underveis basert på ulike bakgrunn i bruk av teknologi/programmering. Litt teoribakgrunn: Fig 3 Vi tenker oss en partikkel som faller fritt (kun påvirket av tyngdekraften G = mg). Partikkelbevegelsen beskrives ved posisjon s, hastighet v og akselerasjon a som funksjon av tiden t. Newtons 2. lov (F = ma) anvendt på denne partikkelen gir oss følgende: F = ma Newtons 2. lov G = ma Tyngden er den eneste ytre kreften som virker, dvs F = G mg = ma Tyngden G er lik produktet av massen m og tyngdeakselerasjonen g a = g Forkorter m og får a = g Ved fritt fall (partikkelen er påvirket av kun tyngden G = mg) vil altså partikkelen få akselerasjonen g. La oss nå anta at partikkelen i tillegg til tyngden også er påvirket av luftmotstand. La oss i første omgang anta at denne luftmotstanden er proporsjonal med hastigheten (dvs luftmotstanden kan skrives som en konstant c multiplisert med hastigheten v) og motsatt rettet. Bruk av Newtons 2. lov gir oss nå: F = ma Newtons 2. lov G - cv = ma Tyngden G og luftmotand cv er de eneste ytre kraftene som virker mg cv = ma Tyngden G er lik produktet av massen m og tyngdeakselerasjonen g a = g c/m*v Løser ligningen mht akselerasjonen a Av det siste uttrykket ser vi at partikkelens akselerasjon er lik tyngdeakselerasjonen g i startøyeblikket (hastigheten v er lik null), men at akselerasjonen a avtar etter hvert som hastigheten v øker. Når hastigheten blir så stor at luftmotstanden blir like stor som tyngden, så vil partikkelen ikke lenger ha noen akselerasjon (partikkelen vil fortsette med konstant hastighet). Denne maksimale hastigheten blir oppnådd når a = g c/m*v = 0, dvs den maksimale hastigheten er gitt ved v = m/c*g. Med en slik luftmotstandsmodell ser vi altså at akselerasjonen a endrer seg. Vi ser også at akselerasjonen er avhengig av massen m, så det skule indikere at to legemer med ulik masse m ikke faller like fort når vi har luftmotstand (uten luftmotstand vil begge falle likt og ha akselerasjonen g, helt uavhengig av massen m: https://www.youtube.com/watch?v=e43-cfukegs ). Hvis luftmotstanden er proporsjonal med hastigheten slik som i eksemplet ovenfor, så kan problemet løses relativt enkelt med penn og papir (det kan også gjøres hvis luftmotstanden er proporsjonal med kvadratet av hastigheten (se artikkel fra UiO: http://folk.uio.no/kristiav/luftmotstand.pdf). Men hvis luftmotstanden er et mer sammensatt uttrykk (bl.a. avhengig av hastigheten på en langt mer kompleks måte), så vil bruk av numerisk matematikk og dataverktøy være hensiktsmessig/nødvendig.

For å løse et luftmotstand-problem numerisk vha dataverktøy og programmering, skal vi først gå tilbake til definisjon av hastighet og akselerasjon og bevegelsesligningene (se fig 4). Fig 4 I kolonne 1 står oppført definisjon av hastighet v og akselerasjon a (kap 2) som henholdsvis den deriverte av posisjon s og den deriverte av hastighet v. I kolonne 2 står oppført veilovene med posisjon s og hastighet v som funksjon av tiden. Her er s 0 og v 0 henholdsvis posisjon og hastighet ved tiden t = 0. Disse integralene som inngår i kolonne 2 kan vi beregne analytisk hvis akselerasjonen a og hastigheten v som inngår som integrander ikke er for kompliserte. Hvis derimot a og v er relativt komplekse, så kan analytiske løsninger bli vanskelige og av og til umulige slik at vi må benytte numeriske beregninger i stedet. Derfor skal vi nå se litt nærmere på dette sistnevnte. Merk at vi i veilovene i kolonne 2 ikke trenger starte ved tiden t = 0. Vi kan gjerne integrere fra et tidspunkt t 0 (som ikke trenger være lik 0), men da må s 0 og t 0 svare til henholdsvis posisjon og hastighet ved dette tidspunktet t 0. I kolonne 3 har vi tatt hensyn til disse sistnevnte betraktningene hvor vi vha veilovene bestemmer henholdsvis posisjon s og hastighet v ved et tidspunkt t + t uttrykt ved posisjon og hastighet ved et tidligere tidspunkt t. Hvis t nå er liten, så kan vi betrakte akselerasjonen a og hastigheten v (de to integrandene) som tilnærmet konstante i dette intervallet fra t til t + t. Dermed får vi resultatet som er vist i kolonne 4. La oss nå benytte disse betraktningene til å bestemme en sluttposisjon og en slutthastighet ved suksessivt å bestemme en ny posisjon og en ny hastighet uttrykt ved posisjon og hastighet ved et tidligere tidspunkt like før (se fig 5). For eksempel ser vi at s 2 og v 2 ved et tidspunkt t 2 er uttrykt ved posisjon s 1 og v 1 ved tidspunktet t 1 hvor t 2 = t 1 + t. Fig 5 Denne måten å løse problemet på blir jo noe slitsomt siden t må være svært liten og derfor gir oss svært mange beregninger for at sluttresultatet skal bli korrekt. Det er her datateknologi og programmering nå kommer til sin rett, så la oss se litt nærmere på dette.

La oss nå gå tilbake til vårt simulerings-eksperiment med luftmotstand og hvor luftmotstanden er proporsjonal ved hastigheten, dvs a = g c/m*v slik som vist i tidligere beregninger. (se fig 6). Fig 6 I fig 6 ser vi beregninger av posisjon og hastighet i steg nr n+ 1 uttrykt ved posisjon og hastighet i steg nr n (foregående steg). Deretter beregnes ny akselerasjon a i steg nr n+1 basert på den nylig beregnede hastigheten v i steg nr n + 1. Slik kan vi nå fortsette steg for steg fra en start-tilstand til en slutt-tilstand. Når vi nå skal programmere dette, må vi løse to problemer. For det første må vi på en eller annen måte få datamaskinen til å forstå at den skal gjenta beregninger steg for steg fra en start-tilstand til en slutt-tilstand. For det andre må vi på en eller annen måte få datamaskinen til å ta vare på alle disse beregnede verdiene for hvert steg. Det første problemet løses enkelt vha en såkalt sløye-teknikk. Datamaskinen har innebygget en klokke. Vi kan sørge for at datamaskinen trigger på denne klokken og be den gjenta beregningene for eksempel ved hvert hundredels sekund. Det andre problemet kan også løses enkelt på følgende måte: Når vi i en datamaskin gjør beregninger med variabler, så vil hvert variabelnavn som vi programmerer inn i datamaskinen representeres ved en fysisk celle i datamaskinens hukommelse. La oss tenke oss at vi har en slik celle kalt x og at denne variabelen har verdien 4. Da ligger tallet 4 lagret i den datamaskincellen som har navnet x. La oss nå tenke oss at vi ønsker å øke denne variabel-verdien med 3, dvs vi ønsker å plassere et nytt tall i cellen x og som er 3 større enn den verdien som i øyeblikket befinner seg i cellen x. Da skriver vi følgende kommando: x = x + 3 I matematikken er jo et slikt uttrykk selvmotsigende fordi vi kan trekke fra x på begge sider (dvs fjerne x på begge sider) og vi sitter igjen med ligningen 0 = 3, og dette er jo feil. I programmering av en datamaskin derimot, så betyr likhetstegnet noe annet. Ligningen ovenfor tolker nemlig datamaskinen på følgende måte: På venstre side foran likhetstegnet står nevnt variabelen x. Da forstår datamaskinen at x skal få en ny verdi, nemlig lik den verdien som står på høyre side av likhetstegnet. På høyre side står det x + 3. Siden x i øyeblikket har verdien 4, så vil høyresiden bli lik 7. Oppsummert: Ligningen x = x + 3 tolker datamaskinen som at x skal få ny verdi, nemlig lik den nåværende verdien 4 pluss 3, dvs den nye verdien vil bli 7. Hvis vi nå lar datamaskinen gjennomføre denne beregningen fortløpende 4 ganger, så blir verdiene til x fortløpende lik 7, 10, 13 og 17 (øker med 3 for hvert steg), dvs vi ender opp med at x har fått verdien 17.

.La oss nå se hvordan vi programmerer den partikkelen som faller fritt (kun påvirket av tyngden, ingen luftmotstand), se fig 7: Fig 7 Et dataprogram deles ofte opp i ulike moduler (blokker). Ovenfor vises en slik blokk, kalt en function. Navnet på funksjonen er move_particle1 (dette navnet er fritt valgbart). Denne blokken starter med det reserverte ordet function etterfulgt av det fritt valgbare funksjons-navnet som her er move_particle. Deretter følger en parentes som inneholder parameteren t (tiden). Denne funksjonen blir kalt opp 100 ganger i sekundet og for hvert kall kommer tiden t inn som en parameter. For hver gang funksjonen kalles opp beregnes ny hastighet (her kalt v1) lik starthastigheten v10 (her lik null) pluss akselerasjonen a1 (som her er lik g = 9.81 m/s 2 ) og ny posisjon (her kalt y1) lik startposisjonen y10 pluss starthastigheten v10 multiplisert med tiden t pluss ½ multiplisert med akselerasjonen a1 (som her er lik g) multiplisert med kvadratet av tiden t. Vi har altså brukt de velkjente bevegelsesligningene fra kap 2. Hvert statement (kommando til datamaskinen) avsluttes med et semikolon. Bakerst på hver linje (med grønn farge) står en kort kommentar (her bevegelsesligningene). Slike kommentarer er kun beregnet for programmerere (for at programmet skal bli enklere å lese), datamaskinen forsøker ikke å tolke slike kommentarer. Kvadratet av t kan vi skrive som t*t, men i eksemplet ovenfor er benyttet en innebygget matematikkfunksjon pow som finnes i matematikk-biblioteket kalt Math. Denne funksjonen har to parametre, den første er grunntallet (her t), den andre er eksponenten (her 2). Vi skriver altså Math.pow(t,2). I vårt eksperiment skal du nå skrive inn tilsvarende nødvendige statement for partikkel nr 2. Nedenfor (fig 8) vises denne funksjonen (foreløpig tom) kalt move_particle2. Også denne funksjonen kalles automatisk opp hundre ganger i sekundet. Fig 8 Statementene som skal skrives inn svarer til følgende tilordninger (fig 9): Fig 9 Gjeldende posisjon til partikkel nr 2 skal kalles y2, gjeldende hastighet v2 og gjeldende akselerasjon a2. Konstantene g, c og m har samme navn som vist ovenfor. Det korte tidsintervallet skal ha navn dt. Etter at disse er testkjørt skal vi lage mer kompliserte uttrykk for luftmotstand og testkjøre disse. Oppgavene vil bli utdelt når eksperimentet starter.

Ved start av dette simulerings-eksperimentet vil dere se følgende skjermbilde (fig 10): Fig 10 Til venstre vises simuleringsprogrammet med to partikler som faller vertikalt. Partikkelen lengst til venstre (rød) simulerer et fritt fall (kun påvirket av tyngden). Partikkelen ved siden av til høyre (blå) er i tillegg til tyngden utsatt for luftmotstand. Fortløpende verdier for posisjon, hastighet og akselerasjon, samt grafer og vektorer vises. Til høyre vises programkoden for denne simuleringen. Dere skal programmere inn de statementene som er nødvendige for å simulere luftmotstand (se blå pil). Dere skal teste ut ulike modeller for luftmotstand og studere likheter/ulikheter mellom disse. Simuleringene og programmeringen utføres vha kun en browser (Google Chrome). Google Chrome har en meget avansert programmerings-editor. Når endringer i programkoden er utført, trykkes lagring (ctrl+s). Deretter trykkes refresh i browseren og simuleringen kan kjøres på nytt. Med en gang koden er lagret (ctrl+s), så er denne simuleringen tilgjengelig på internett og kan kjøres umiddelbart på PC, laptop, tablet, mobiltlf, TV,. På neste side vises en kort oppsummering. Lykke til med simulerings-eksperimentet!

Oppsummering: Teori Simulering / Programmering Bjørn Olav Hogstad Per Henrik Hogstad NTNU UiA