Elektromagnetisk stråling

<div class="alert alert-block alert-danger">

Info til lærer:

Målet med dette opplegget er at eleven skal bli kjent med og samle informasjon om ulike typer elektromagnetisk stråling, og sammenhengen mellom bølgelengde og frekvens. Det kan også brukes i forbindelse med opplæring i if-tester og grunnleggende programmering.

</div> <div class="alert alert-block alert-success">

Nå skal vi lage et program som kan la oss utforske elektromagnetisk stråling. Dette er energi som overføres som elektromagnetiske bølger. I dette programmet skal vi se på hvordan bølgelengden til slike bølger kan fortelle oss hva slags elektromagnetisk stråling det er. <br><br> Relevante kompetansemål for naturfag, vg1 studiespesialiserende utdanningsprogram:

  • utforske og beskrive noen sentrale bølgefenomener
  • utforske og beskrive elektromagnetisk og ioniserende stråling
</div>

Innhold

Bakgrunn

Vi er alltid omgitt av mange typer elektromagnetiske bølger. Noen av dem kan vi se, og dette kaller vi synlig lys - altså alt lyset du ser. Men det finnes også mye elektromagnetisk stråling man ikke kan se, som for eksempel radiobølger, mikrobølger og røntgenstråling.

Elektromagnetiske bølger minner om mekaniske bølger. For eksempel følger de samme bevegelse, og begge frakter energi. Den store forskjellen på de to typene bølger, er at mekaniske bølger trenger et medium å forflytte seg gjennom, som luft eller vann. Elektromagnetiske bølger trenger ikke det, og det er derfor vi for eksempel kan se lys fra sola og stjernene, og motta satelittsignaler fra langt ute i verdensrommet.

<img style="float" src="em-spekter.png">

De ulike typene elektromagnetisk stråling har forskjellige egenskaper, og det som skiller dem er bølgelengdene deres. Bølgelengden til en bølge er avstanden mellom to bølgetopper, og vi bruker gjerne den greske bokstaven λ\lambda for å betegne denne avstanden. Denne bokstaven kaller vi "lambda".

<div class="alert alert-block alert-success">

Det er vanlig å bruke nanometer, eller "nm" som måleenhet for bølgelengden til elektromagnetiske bølger. En nanometer er en milliarddel av en meter. Dette kan vi også skrive som at 1nm=11000000000m1\, \text{nm} = \frac{1}{1000000000}\, \text{m}, eller 1nm=19m1\, \text{nm} = 1^{-9} \text{m}. For eksempel har synlig lys bølgelengder mellom ca. 400nm400\, \text{nm} og 750nm750\, \text{nm}.

</div> <div class="alert alert-block alert-info">

Oppgave 1

På bildet over ser du navnene på de forskjellige typene elektromagnetisk stråling. Hvilke har du hørt om før? Hva vet du om dem?

Samarbeid med partneren din og skriv litt om de forskjellige typene elektromagnetisk stråling i feltet under. Søk på nettet eller bruk læreboka for å finne informasjon.

</div>

Gammastråling:

  • ...

Røntgenstråling:

  • ...

Ultrafiolett stråling:

  • ...

Synlig lys:

  • ...

Infrarød stråling:

  • ...

Mikrobølger:

  • ...

Radiobølger:

  • ...

Bestemme elektromagnetisk stråling med programmering

Nå skal vi bygge opp et program som kan fortelle oss hva slags elektromagnetisk stråling vi har når vi forteller bølgelengden til strålingen. Under ser du en halvferdig kode, der vi bruker funksjonen input() for å få en bølgelengde i nanometer (nm) fra den som bruker programmet. Programmet skal så gi en fornuftig beskjed til brukeren om hva slags stråling det er.

Vi bruker en if-test for å bestemme type stråling. En if-test er en rekke valg, der vi trinnvis undersøker om noe er sant eller ikke.

<div class="alert alert-block alert-info">

Oppgave 2

Fyll inn der det står spørsmålstegn ??? i koden under for å få den til å gi mening. <br><br> Tenk gjennom:

  • Hvis den første testen er sann, altså if bølgelengde < ???, skal vi få beskjeden <span style="font-family:'Courier New'">Dette er elektromagnetisk stråling med kortere bølgelengde enn synlig lys.</span> For hvilke verdier av bølgelengde stemmer det?
  • I den neste testen, elif bølgelengde < 750, undersøker vi om bølgelengden er mellom 750 og den grensa vi satt i testen if bølgelengde < ???. Hva slags elektromagnetisk stråling er det?
</div>
1 
2
3
4
5
6
7
8
9
bølgelengde = float(input("Skriv inn bølgelengde i nm: "))
print("Du har valgt bølgelengde", bølgelengde, "nm")

if bølgelengde < ???:
    print("Dette er elektromagnetisk stråling med kortere bølgelengde enn synlig lys.")
elif bølgelengde < 750: 
    print("Dette er ???")
else:
    print("Dette er elektromagnetisk stråling med lengre bølgelengde enn synlig lys.")

Vi utvider programmet

Som du kan se på bildet lenger opp på siden, deler vi stråling med kortere bølgelengde i synlig lys inn i gammastråling, røntgenstråling og ultrafiolett stråling. Stråling med lengre bølgelengde enn synlig lys deles inn i infrarød stråling, mikrobølger og radiobølger. Vi kan ikke si nøyaktig hvor grensene mellom de forskjellige går, men her er en oversikt over de ulike strålingstypene med omtrentlige intervall for bølgelengdene:

Type elektromagnetisk strålingBølgelengde i nanometer (nm)Bølgelengde i andre lengdeenheter
GammastrålingUnder 0,01 nm
Røntgenstråling0,01 - 10 nm
Ultrafiolett stråling10 - 400 nm
Synlig lys400 - 750 nm
Infrarød stråling750 - 1'000'000 nm750 nm - 1 mm
Mikrobølger1'000'000 - 1'000'000'000 nm1 mm - 1 m
RadiobølgerOver 1'000'000'000 nmOver 1 m
<img style="float" src="em_egenskaper.png">
<div class="alert alert-block alert-info">

Oppgave 3:

  1. Bruk tabellen for å utvide koden din til å undersøke for flere typer stråling. Dette kan du gjøre ved å legge inn flere tester i koden. Snakk med partneren din om hvordan du vil gå fram før du begynner å skrive programmet.

  2. Få programmet til å skrive ut en linje som forteller brukeren om de elektromagnetiske bølgene de har skrevet inn bølgelengden til. Bruk det du skrev om de forskjellige strålingstypene i oppgave 1. For synlig lys i intervallet 400 - 750 nm kan beskjeden for eksempel være:

elif bølgelengde < 750:
     print("Dette er synlig lys")
     print("Synlig lys kan deles inn i ROGGBIF-fargene rød, oransje, gul, grønn, blå, indigo og fiolett.")

Du finner et forslag lenger ned - men prøv selv først!

</div>
1 
2
3
4
# Her kan du lime inn koden du lagde i forrige oppgave for å bygge videre på den:



.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

1 
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
bølgelengde = float(input("Skriv inn bølgelengde i nm: "))
print("Du har valgt bølgelengde", bølgelengde, "nm")

if bølgelengde < 0.01:
    print("Dette er gammastråling.")
    print("Gammastråling er energirik, radioaktiv stråling. Det kan brukes i kreftbehandling, men kan også være veldig skadelig.")

elif bølgelengde < 10:
    print("Dette er røntgenstråling.")
    print("Røntgenstråling gjennomlyser stoff som er ugjennomsiktige for vanlig lys slik at vi kan ta bilder av beinstrukturen til levende mennesker (røntgenbilder).")

elif bølgelengde < 400:
    print("Dette er ultrafiolett stråling.")
    print("Ultrafiolett stråling kalles også UV-stråling (ultraviolet), og er viktig for helsa vår, men kan også gi hud- og øyeskader i store doser.")

elif bølgelengde < 750:
    print("Dette er synlig lys.")
    print("Synlig lys kan deles inn i ROGGBIF-fargene rød, oransje, gul, grønn, blå, indigo og fiolett.")

elif bølgelengde < 1000000:
    print("Dette er infrarød stråling.")
    print("Infrarød stråling overfører varme, f.eks. fra sola eller en vedovn.")

elif bølgelengde < 1000000000:
    print("Dette er mikrobølger.")
    print("Mikrobølger brukes bl.a. til oppvarming av mat i en mikrobølgeovn, ved at mikrobølgene får vann- og fettmolekylene til å vibrere slik at de varmes opp.")

else:
    print("Dette er radiobølger.")
    print("Radiobølger har lang bølgelengde og kan sende signaler over lange avstander, og brukes til både kommunikasjon og navigasjon.")

Bølgelengde og frekvens

<img src="frekvens_b-lengde.png" style="float: right;" width="500"/>

Bølger med lang bølgelengde har lav frekvens. Det vil si at de ikke svinger så fort som noe som har høy frekvens og kort bølgelengde. Radiobølger har for eksempel veldig lang bølgelengde, så de svinger mye saktere enn bølgene til gammastråling, som har kortere bølgelengde.

Bølgelengde og frekvens har denne sammenhengen:

v=fλ v = f \cdot \lambda

der vv er bølgefarten i m/s (meter per sekund), ff er frekvensen i Hz (svingninger per sekund), og λ\lambda er bølgelengden i meter. Bølgefart er hvor fort en bølge beveger seg bortover. <br><br>

<div class="alert alert-block alert-success">

Elektromagnetiske bølger beveger seg med farten c=3108c = 3 \cdot 10^8 m/s, som er lysets hastighet.

</div>
<div class="alert alert-block alert-danger">

Info til lærer:

Velg én av variantene av oppgave 4 (under).

</div>
<div class="alert alert-block alert-info">

Oppgave 4 - ALTERNATIV 1 (eleven må bygge opp mesteparten av koden selv)

  1. Finn formelen for å regne om fra en bølgelengde λ\lambda oppgitt i nm (10910^{-9} m) til en frekvens ff oppgitt i THz (101210^{12} Hz)

  2. Finn formelen for å regne om fra en frekvens ff oppgitt i THz (101210^{12} Hz) til en bølgelengde λ\lambda oppgitt i nm (10910^{-9} m)

  3. Skriv et program der du bruker disse formlene. Programmet skal først innhente informasjon fra den som bruker det om du vil ha inn frekvens (f) eller bølgelengde (b).

    • Hvis man velger frekvens, skal programmet skrive ut hvilken bølgelengde det tilsvarer.
    • Hvis man velger bølgelengde, skal programmet skrive ut hvilken frekvens det tilsvarer.
    • Bølgelengden skal være i nm, og frekvensen i THz.

Du finner et forslag lenger ned.

</div>
1 
2
3
4
5
6
7
8
9
10
f_eller_b = input("Vil du oppgi frekvens(f) eller bølgelengde(b)? ")

c = ???     # Lysets hastighet i m/s

if f_eller_b == 'f':
    ???                     # Skriv hva som skal skje hvis man velger frekvens(f)
elif f_eller_b == 'b':
    ???                     # Skriv hva som skal skje hvis man velger bølgelengde(b)
else:
    print("Du må skrive inn enten f eller b.")
<div class="alert alert-block alert-info">

Oppgave 4 - ALTERNATIV 2 (utfylling av kode, eleven får de "kjedelige" greiene ferdig skrevet)

  1. Finn formelen for å regne om fra en bølgelengde λ\lambda oppgitt i nm (10910^{-9} m) til en frekvens ff oppgitt i THz (101210^{12} Hz)

  2. Finn formelen for å regne om fra en frekvens ff oppgitt i THz (101210^{12} Hz) til en bølgelengde λ\lambda oppgitt i nm (10910^{-9} m)

  3. Bruk disse formlene for å fullføre programmet under. Programmet skal først innhente informasjon fra den som bruker det om du vil ha inn frekvens (f) eller bølgelengde (b).

    • Hvis man velger frekvens, skal programmet skrive ut hvilken bølgelengde det tilsvarer.
    • Hvis man velger bølgelengde, skal programmet skrive ut hvilken frekvens det tilsvarer.
    • Bølgelengden skal være i nm, og frekvensen i THz.

Du finner et forslag lenger ned.

</div>
1 
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
f_eller_b = input("Vil du oppgi frekvens(f) eller bølgelengde(b)? ")

c = ???     # Lysets hastighet i m/s

if f_eller_b == 'f':
    frekvens = float(input("Skriv inn frekvensen i THz: "))
    bølgelengde = ???
    print("Dette tilsvarer en bølgelengde på", bølgelengde, "nm")
    
elif f_eller_b == 'b':
    bølgelengde = float(input("Skriv inn bølgelengde i nm: "))
    frekvens = ???
    print("Dette tilsvarer frekvensen", frekvens, "THz")
    
else:
    print("Du må skrive inn enten f eller b.")

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

1 
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
f_eller_b = input("Vil du oppgi frekvens(f) eller bølgelengde(b)? ")

c = 3 * 10**8

if f_eller_b == 'f':
    frekvens = float(input("Skriv inn frekvensen i THz: "))
    bølgelengde = c / (frekvens * 1000)
    print("Dette tilsvarer en bølgelengde på", bølgelengde, "nm")
    
elif f_eller_b == 'b':
    bølgelengde = float(input("Skriv inn bølgelengde i nm: "))
    frekvens = c / (bølgelengde * 1000)
    print("Dette tilsvarer frekvensen", frekvens, "THz")
    
else:
    print("Du må skrive inn enten f eller b.")

    
# Vi kan også sette dette sammen med koden vi har laget fra før:

if bølgelengde < 0.01:
    print("Dette er gammastråling.")
elif bølgelengde < 10:
    print("Dette er røntgenstråling.")
elif bølgelengde < 400:
    print("Dette er ultrafiolett stråling.")
elif bølgelengde < 750:
    print("Dette er synlig lys.")
elif bølgelengde < 1000:
    print("Dette er infrarød stråling.")
elif bølgelengde < 1000000:
    print("Dette er mikrobølger.")
else:
    print("Dette er radiobølger.")

Bølgelengder til synlig lys

<div class="alert alert-block alert-danger">

Info til lærer:

Denne delen av opplegget går litt utover naturfagpensummet, men kan være en måte å visualisere hvordan de ulike fargene i synlig lys har forskjellige bølgelengder.

</div>
<img style="float" src="lysbrytning_prisme.png">

Synlig lys har bølgelengder mellom ca. 400 og 750 nm, og er de eneste bølgene vi kan se på det elektromagnetiske spektret. Bølgelengdene til lyset påvirker hvilken farge det har: Rødt lys har de lengst bølgelengdene, mens fiolett lys har de korteste.

Nå skal vi plotte lys med ulike farger i samme koordinatsystem, for å sammenlikne dem og se hvordan bølgene deres oppfører seg.

For å tegne bølgene til de ulike lysfargene i Python bruker vi noe som kalles "dictionaries", eller ordbøker. Da kan programmet oversette fra en verdi til en annen.

1 
2
3
4
5
6
7
8
# Ordbok som oversetter fra norsk fargenavn til engelsk fargenavn og bølgelengde i nm:
b_lengder = {'rød':     ['red',     700],
             'oransje': ['orange',  610],
             'gul':     ['yellow',  580],
             'grønn':   ['lime',    540],
             'turkis':  ['cyan',    485],
             'blå':     ['blue',    460],       
             'fiolett': ['magenta', 400]}  

Vi skal også lage en funksjon for å lage bølgebevegelsen:

1 
2
3
4
5
6
import numpy as np

# Funksjon som lager en sinusbølge med bølgelengde lam (for "lambda") for gitte x-verdier
def bølge(lam, x):
    k = 2 * np.pi / lam
    return np.sin(k * x)

Til slutt setter vi alt sammen, og med en input()-funksjon kan vi velge hvor mange ganger vi vil se av gangen, og hvilke farger det skal være.

[33]: 
1 
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
import numpy as np
import matplotlib.pyplot as plt

b_lengder = {'rød':     ['red',     700],
             'oransje': ['orange',  610],
             'gul':     ['yellow',  580],
             'grønn':   ['lime',    540],
             'turkis':  ['cyan',    485],
             'blå':     ['blue',    460],       
             'fiolett': ['magenta', 400]}  

def bølge(lam, x):
    k = 2 * np.pi / lam
    return np.sin(k * x)

x_max = 2500
x = np.linspace(0, x_max, 1001)

# Nå skal vi tegne figuren:

plt.style.use('dark_background')    # Her gir vi plottet mørk bakgrunn, fordi det ser kult ut
plt.figure(figsize=(16, 4))         # Bestemmer størrelsen

antall = int(input("Skriv hvor mange bølger du vil programmet skal tegne (mellom 1 og 7): "))

# Dersom man ber om 7 eller flere, tegner vi alle i "b_lengder":
if antall >= 7:
    for farge in b_lengder:
        y = bølge(b_lengder[farge][1], x)
        plt.plot(x, y, color=b_lengder[farge][0])

# Hvis man vil ha færre enn syv bølger, får man velge fargene:
else:
    for i in range(antall):         
        farge = input("Skriv fargen du vil ha (rød, oransje, gul, grønn, turkis, blå eller fiolett): ")
        y = bølge(b_lengder[farge][1], x)
        plt.plot(x, y, color=b_lengder[farge][0])

plt.show()
Skriv hvor mange bølger du vil programmet skal tegne (mellom 1 og 7): 7