Brytning og overlagring – programmering
Brytning vi si at bølger endrer vinkel når de går fra et medium til et annet. Dette skyldes at bølgen endrer fart. I det første programmet vårt skal vi se på lysbølger som kommer fra luft og går inn i et valgt medium.
For de aller fleste medier vil lyset gå litt saktere, og lyset vil da brytes inn mot innfallsloddet. Innfallsloddet er en tenkt linje som står vinkelrett på flaten mellom mediene (for eksempel vinkelrett på vannflaten eller glassvinduet).
Størrelsen på denne vinkelen er gitt av formelen
der u er brytningsvinkelen, v er innfallsvinkelen og n er brytningsindeksen til mediet som lyset går inn i. n er et tall vi må finne eksperimentelt for hvert medium, men du kan også finne n for mange stoffer på internett.
Vi lager nå et program for å regne ut denne vinkelen:
Se kode og resultat samtidig
I menyen til venstre kan du velge visning i fullbredde hvis du ønsker å se kode og resultat samtidig. Det samme oppnår du ved å kopiere koden inn i et Pythonprogram, som for eksempel Spyder.
Brytningsvinkel
I koden over har vi brukt biblioteket NumPy til å regne med vinkler.
Det er ikke sikkert du vet hva sin eller arcsin er. Kort fortalt er sin, som egentlig heter sinus, forholdet mellom motstående katet og hypotenusen, et nyttig tall som brukes ofte i matematikk. Begrepet arcsin (invers sinus) brukes til å regne om sinus-verdien til en vinkel tilbake til vinkelen.
Du har kanskje også lagt merke til at tallene 180 og pi brukes. Dette er fordi man i mer avansert matematikk ofte bruker 2 pi som omkretsen av en sirkel – og ikke 360 grader, slik vi er vant til. Dette er et vinkelmål som kalles radianer. Grunnen til at vi må bruke det her, er at NumPy har valgt det. Vi må derfor legge inn en omregning, slik at vi kan bruke vanlige grader.
Utfordring: I programmet vårt kommer alltid lyset fra luft og går til et annet medium. Men det kan jo tenkes at det kommer fra et annet medium enn luft. Prøv å lage et program hvor brukeren velger både hvor lyset kommer fra, og hvor det går til.
Formelen er nesten den samme som tidligere:
- n1 er brytningsindeksen til mediet lyset kommer fra
- n2 er brytningsindeksen mediet går til
- u er brytningsvinkelen
- v er innfallsvinkelen
Hvis du vil ha med luft som et valg, er brytningsindeksen til luft lik 1.
En løsning kan være slik:
Brytningsvinkel mellom ulike medier
I løsningsforslaget over har vi valgt å endre litt på if- og elif-setningene, siden begge valgene må gjøres før noe skrives ut. Hvis du legger inn veldig mange forskjellige medier, kan det bli litt tungvint å måtte legge til to elif-setninger for hvert av dem. Da kan det kanskje være lurere å legge verdiene inn i ei liste og hente dem ut igjen på indeksnummer.
I avsnittet om brytning forklarte vi hva sinus er. Noe av det sinus kan brukes til, er å tegne bølger. Det skal vi gjøre når vi nå skal se på bølgefenomenet overlagring.
Ute på åpent hav er ikke overlagring noe vi trenger å tenke på, men når vi nærmer oss land, holmer eller skjær, har du sikkert lagt merke til at bølgene endrer karakter og tilsynelatende blir mer kaotiske og ofte voldsomme. Grunnen til dette er overlagring. Det betyr at bølger som møtes, vil «legge seg oppå hverandre». Sagt på en mer matematisk måte vil bølgenes amplitude adderes.
Det er flere tilfeller hvor dette vil skje, for eksempel når bølger slår mot et høyt skjær og sendes tilbake til havet, eller når de bøyes mellom klipper eller trange sund. I slike tilfeller kan bølger få så store bølgedaler at de får skip til å gå på grunn.
Filmen under viser et eksempel på overlagring av lydbølger som kommer fra to høyttalere, mens avstanden mellom dem øker.
Vi skal nå lage et program som simulerer dette ved at brukeren legger inn to bølger. Deretter setter programmet dem sammen og gir oss resultatet av overlagringen. Men først må vi introdusere noen flere begreper om bølger:
Amplitude
Maksimal høyde av en bølge (regnet fra midten, den såkalte likevektslinja).
Frekvens og bølgelengde
Hvor ofte bølgen går fra maksimal høyde, ned og tilbake til maksimal høyde igjen, kalles frekvens. Med andre ord er frekvens antall svingninger per tidsenhet.
Avstanden mellom bølgetoppene kalles bølgelengde. Hvis du bruker x-aksen som sekunder, vil antall bølgetopper mellom hver x-verdi gi frekvensen. Men hvis du i stedet bruker x-aksen som lengde, vil avstanden mellom bølgetoppene være bølgelengden.
Faseforskyving
Begge bølgene treffer hverandre ikke nødvendigvis i samme stadium av bølgebevegelsen. Hvis den ene bølgen er på topp samtidig som den andre er på bunn, vil det gi et helt annet utslag enn om bølgetopp treffer bølgetopp.
Alle disse egenskapene er representert i formelen vi bruker:
Vi begynner med å lage et program som kan tegne bølger. Deretter skal vi legge inn en bølge til. Prøv å lage et program med den gitte formelen som en funksjon. Brukeren skal kunne skrive inn A-, k- og c-verdier, og programmet skal så tegne en graf som viser bølgen (la programmet bruke 1000 x-verdier mellom 0 og 25 til å tegne bølgen).
Hva er A, k og c?
Når du har fått programmet til å virke, prøver du å kjøre det noen ganger med ulike verdier for A, k og c, helt til du har fått en forståelse av hva som styrer amplitude, frekvens/bølgelengde og faseforskyving.
Prøv nå å utvide programmet slik at det lager to bølger som det først tegner hver for seg, og deretter sammen som en overlagret bølge.
Kjør programmet noen ganger, og se hvilke bølger du klarer å lage.
Kommentarer til løsningsforslaget
Sluttverdien til x er satt til
plt.ylim(-10, 10) er lagt til denne gangen. Vanligvis velger Python selv hvor y-aksen starter og stopper, basert på verdiene som skal plottes, men det er ikke så hensiktsmessig for oss. Vi vil gjerne se hvordan bølgene ser ut både før og etter overlagring, og da er det greit å se dem i samme størrelsesforhold. Vær oppmerksom på at dette setter noen begrensinger for hva brukeren kan velge som amplitude (A).
- Lag to bølger som begge har amplitude større enn 1, men som ved overlagring gir et helt stille hav.
- Lag to bølger hvor bølgetopp alltid møter bølgetopp, men hvor bølgene har ulik verdi for c.
- Lag to bølger som sammen gir en bølge hvor den fjerde bølgebunnen er dypere enn de første tre når de to bølgene er overlagret.
Guoskevaš sisdoallu
Bárus lea ráfehuhttin mii leavvá, ii fal materiála. Dán siiddus beasat oaidnit eambbo erenoamáš iešvuođaid mat báruin leat.
Bárrolihkastat: Juohke oassi báttis sugada bajas vulos. Ii čuovo mielde dan guvlui gosa bárru leavvá, dušše sirdá lihkastaga oassái mii lea bálddas.