Denne del af kurset er ikke bygget op med øvelser, men er rettet mod underviseren. Dette skyldes at det er ret omstændigt at skulle lave et undervisningsmateriale, der giver eleven indblik i matematikkens regler.
Dette afsnit om Python som lommeregner er altså designet til at give dig som underviser et indblik i syntaksen.
Som inspiration kan nævnes, at personligt anvender Python til beregninger og funktionsplot, da det det altid er ved hånden
For at bruge de fire almindelige regningsarter anvender vi tegnene: +, -, * og /
Eksempler
>>> 5+4
9
>>> 6-2
4
>>> 5*2
10
>>> 6/3
2.0
Læg mærke til at Python svarer tilbage med et decimaltal når man dividerer, og at der anvendes punktum til at adskille heltallet fra decimalen. Står der kun et 0 efter punktummet betyder det at tallet er et heltal
Pythons kommandolinie består af input og output. Når kommandofortolkeren starter op angiver man sit input ved de 3 "større end" tegn (>>>). Python viser output (resultatet) i linien under.
>>> 7 ← input
7 ← output
I Python anvender man . (punktum) som seperator mellem heltallet og decimalen. Det skyldes at , fungerer som seperator mellem udtryk. Dvs. 3.14, 2.75 osv.
Er decimalværdien .0 betyder det, at det er et heltal.
Python anvender enten heltal (intergers) eller float (decimaltal).
Så længe vi anvender +, - og *, så vil output være i heltal, når vi anvender heltal som input.
Ved division vil Python altid konvertere tallene til float, hvilker er årsagen til det lidt kryptiske .0 når resultatet er et heltal.
Vi kan indsætte det forrige output (resultat) ved hjælp af _ (underscore ). Underscore kommer ved at anvende tastekombinationen Shift + -.
>>> 7
7
>>> _+2
9
Paranteser anvendes efter matematikkens regler:
>>> 1/(2*8)
0.0625
Negative værdier angives ved at sætte - foran værdien. Det skal ikke i parantes selvom det er første værdi i regnestykket (som ved Texas lommeregneren)
>>> -2*7
-14
>>> 7/-4
-1.75
Hvis man vil sikre sig et positivt resultat anvendes abs()
>>> abs(-7)
7
En af de smarte ting man kan gøre er at bruge variabler. Forestil dig, at du skal udregne arealet af et rektangel, hvor formlen er \( højde \cdot bredde \).
Her kan du vælge at indtaste \( højde \) og \( bredde \) som variabler på følgende måde og udregne arealet:
>>> højde = 3
>>> bredde = 5
>>> højde * bredde
15
Det kan være rigtigt smart, hvis man skal udregne en masse regnestykker hvor noget bliver ved med at være ens. Hvis vi senere skal udregne et rektangel, hvor højden er den sammen, men bredden er 7, skal vi kun ændre variablen for bredden. Det gør vi ved at indtaste en ny bredde (ændre variablen)
>>> bredde = 7
>>> højde * bredde
21
Kan man ikke huske variablen, så finder man værdien ved at skrive den, f.eks:
>>> højde
3
>>> bredde
7
Variabler kan være beregnet både ved hjælp af værdier og ved hjælp af variabler, f.eks:
>>> areal = bredde*højde
>>> areal
21
En variabel vi anvender ofte er pi (). Den variabel får vi adgang til igennem funktionen math, som først skal importeres.
Det gør vi på følgende måde:
>>> from math import pi
Herefter kan vi vise hvad er og regne med det:
>>> from math import pi
>>> pi
3.141592653589793
>>> 3*pi
9.42477796076938
Der er to forskellige måder vi kan regne med brøker.
Dette er den letteste måde. Her regner vi bare brøkerne somom de var divisionsstykker. Lad os kigge på nogle eksempler:
>>>3/4
0.75
>>> 3/4 + 4
4.75
>>> 3/4 + 4/5
1.55
>>> 2/3*3/4
0.5
>>> (2+1/2)+3/4
3.25
VIGTIGT!: Læg mærke til, at jeg sætter den blandede brøk i en parantes, før jeg regner videre med den
Python kan også regne med brøker, men det kræver at vi importere funktionen. Man importere brøkfunktionen ved at skrive:
>>> from fractions import Fraction
Funktionen hedder Fractions(a,b)), hvor a er tælleren og b er nævneren.
Brøken \( \frac 3 7 \) bliver altså til: Fractions(3,7)
Her er vist hvordan vi udregner regnestykkerne ovenfor:
>>> from fractions import Fraction
>>> Fraction(3,4)
Fraction(3, 4)
>>> Fraction(3,4) + 4
Fraction(19, 4)
>>> Fraction(3,4)+Fraction(4,5)
Fraction(31, 20)
>>> Fraction(2,3)*Fraction(3,4)
Fraction(1, 2)
>>> (2+Fraction(1,2))+Fraction(3,4)
Fraction(13, 4)
Læg mærke til at jeg stadig skal samle den blandende brøk i en parantes.
For at finde heltalsdelen og restdelen i et divisionsstykke anvendes funktionerne floor division og modulus:
Funktion | tegn | Beskrivelse |
---|---|---|
floor division | // | Finder heltallet efter division |
modulus | % | Finder restproduktet |
Lad os kigge på sidste resultat ovenfor: Fraction(13/4), hvilket er brøken \( \frac {13} {4} \). Herunder udregner jeg først heltallet, og derefter restproduktet.
>>> 13//4
3
>>> 13%4
1
\( \frac{ 13 }{ 4 } \) kan altså omskrives til \( 3 \frac 1 4 \), hvor 3 er heltallet og 1 er restproduktet (tælleren). Nævneren er den oprindelige nævner.
Forestil dig, at du gerne vil have et tal omskrivet til en brøk. Det kan f.eks. være \( 0.125 \).
Den hurtige ville være bare at omskrive det til tusindedele, altså: \( \frac{ 125 }{ 1000 } \)
Men hvad hvis den brøk kan forkortes til noget smartere? Det kan vi undersøge med Python.
>>>from fractions import Fraction
>>> Fraction(0.125)
Fraction(1, 8)
\( 0.125 \) kan altså omskrives til \( \frac{ 1 }{ 8 } \)
Potenser kan regnes ud på 2 måder. For potenstallet \( a^b \) kan man altså sige:
>>> pow(8,2)
64
>>> 8**2
64
For at regne med rødder skal man bruge følgende omskrivning:
Dvs. at \( \sqrt[3]{27} \) bliver til:
>>> pow(27,1/3)
3.0
>>> 27**(1/3)
3.0
Læg mærke til, at \( \frac{ 1 }{ 3 } \) skal være i parantes, hvis man anvender ** metoden. Ellers vil Python fortolke regnestykket som \( \frac{ 27^1 }{ 3 } = 9\)
>>> 27**1/3
9.0
Den sikre metode er pow(a,b))
Man afrunder tal ved hjælp af funktionen round(a,b), hvor a er tallet og b er antallet af decimaler. det gøres på følgende måde:
>>> from math import pi
>>> pi
3.141592653589793
>>> round(pi,2)
3.14
>>> round(pi,4)
3.1416
Man kan også runde op og ned til nærmeste hele tal. Ligesom pi ligger disse i math-modulet. Det gøres ved hjælp af:
Herunder laver jeg afrundinger af pi.
>>> from math import pi, ceil, floor
>>> pi
3.141592653589793
>>> ceil(pi)
4
>>> floor(pi)
3
Læg mærke til at jeg kan importere flere funktioner fra samme pakke ved at adskille dem med , (komma))
Her støder vi på noget, som i folkeskolesammenhæng er lidt bøvlet. Det skyldes at Python regner med radianer og ikke grader. Så for at kunne anvende Pythons geometrifunktioner skal vi først konvertere grader til radianer.
Python bliver brugt til avanceret matematik, og der anvender man radianer hvor cirklens omkredes er lig med \( 2 \pi \) og ikke 360°.
Her vil vi også gøre det lidt anderledes, og så importere hele math modulet, og så kalde funktionerne.
Ovenfor har vi importeret pi, ceil, floor direkte fra math.
Vi kunne også sagtens gøre det samme her, det bliver bare hurtigt uoverskueligt, da der er en del funktioner (8 i alt) der skal importeres til trigonometri, nemlig:
Det ville give en sætning der lød:
from math import cos, acos, sin, asin, tan, atan, degrees, radians
Når vi har importeret math er funktionerne
import math
Grad til radian | Radian til grad |
---|---|
\( math.radians() \) | \( math.degrees() \) |
Eksempel: konverter 90° og 45°
>>> math.radians(90)
1.5707963267948966
>>> math.radians(45)
0.7853981633974483
Eksempel: konverter 0.45 rad og 0.789 rad til grader
>>> math.degrees(0.45)
25.783100780887047
>>> math.degrees(0.789)
45.206370035821955
funktion | Python | funktion | Python |
---|---|---|---|
\( sin() \) | \( math.sin() \) | \( sin()^{-1} \) | \( math.asin() \) |
\( cos() \) | \( math.cos() \) | \( cos()^{-1} \) | \( math.acos() \) |
\( tan() \) | \( math.tan() \) | \( tan()^{-1} \) | \( math.atan() \) |
I en retvinklet trekant gælder følgende:
Vi prøver at beregne vinkel a en 3-4-5 trekant (phytagoræsik triple), altså hvor:
Ved hjælp af sinus
>>> import math
>>> math.asin(3/5) ← beregnet ved hjælp af asin
0.6435011087932844 ← resultat i radianer
>>> math.degrees(_)← omdanner radianer til grader ( _ henter forrige output)
36.86989764584402 ← resultat i radianer
Ved hjælp af cosinus
>>> math.acos(4/5)
0.6435011087932843
>>> math.degrees(_)
36.86989764584401
Ved hjælp af tangens
>>> math.atan(3/4)
0.6435011087932844
>>> math.degrees(_)
36.86989764584402
Vinkel A er altså 36,9°
En af de ting der er svært for nogle elever er at forstå hvordan man anvender formlerne, men ved hjælp af Python kan man læse metodikken, mens man udregner:
>>> import math
>>> a = 3
>>> b = 4
>>> c = 5
>>> sin_A = a/c
>>> vinkel_rad = math.asin(sin_A)
>>> vinkel_grad = math.degrees(vinkel_rad)
>>> vinkel_grad
36.86989764584402
>>> round(_,2)
36.87
Hvad der programmeres | Forklaring |
---|---|
>>> a = 3 >>> b = 4 >>> c = 5 |
Variabler sættes |
>>> sin_A = a/c | Beregn værdien af sin(A) |
>>> vinkel_rad = math.asin(sin_A) | Find længden af vinkelbuen i radianer |
>>> vinkel_grad = math.degrees(vinkel_rad) | Konverter radianer til grader |
>>> vinkel_grad 36.86989764584402 |
Udskriv vinklen |
>>> round(_,2) 36.87 |
Forkort den til 2 decimaler |