Uitgebreide operaties uit math
Contents
1.2. Uitgebreide operaties uit math#
Er is dus al veel beschikbaar in de standaard Python functies, maar het zal je vast opgevallen zijn dat er niet voor elk knopje dat je op je rekenmachine kunt vinden een functie is. Je kunt bijvoorbeeld de sinus niet zomaar tevoorschijn toveren door sin(hoek) te typen:
sin(250)
---------------------------------------------------------------------------
NameError Traceback (most recent call last)
<ipython-input-1-aa1c4fbf4c73> in <cell line: 1>()
----> 1 sin(250)
NameError: name 'sin' is not defined
Om alles overzichtelijk te houden zitten de niet-standaard wiskundige functies ingebouwd in modules. Modules zijn onderdelen van Python die je kunt importeren wanneer je ze nodig hebt. Op deze manier wordt er alleen ingeladen wat je ook echt gaat gebruiken, wat een stuk vriendelijker is voor het geheugen van je computer.
1.2.1. Operaties uit de math-module#
Voor extra wiskundige functies kan je de math module inladen met het volgende commando.
import math
Je kunt het importeren van de math-module een beetje vergelijken met de standaard rekenmachine die iedereen wel op het bureau heeft liggen, en de wetenschappelijke rekenmachine die je later in je schoolcarriere bent gaan gebruiken. Standaard is Python slechts een hele eenvoudige rekenmachine, maar met alle functies die de math-module ons geeft, hebben we er een wetenschappelijke rekenmachine van gemaakt.
|
|---|
We kunnen van Python met één eenvoudig commando een uitgebreidere rekenmachine maken. |
Zodra je dit hebt gedaan kan je met het volgende commando bekijken welke functies er allemaal in deze module zitten.
dir(math)
['__doc__',
'__loader__',
'__name__',
'__package__',
'__spec__',
'acos',
'acosh',
'asin',
'asinh',
'atan',
'atan2',
'atanh',
'ceil',
'comb',
'copysign',
'cos',
'cosh',
'degrees',
'dist',
'e',
'erf',
'erfc',
'exp',
'expm1',
'fabs',
'factorial',
'floor',
'fmod',
'frexp',
'fsum',
'gamma',
'gcd',
'hypot',
'inf',
'isclose',
'isfinite',
'isinf',
'isnan',
'isqrt',
'ldexp',
'lgamma',
'log',
'log10',
'log1p',
'log2',
'modf',
'nan',
'perm',
'pi',
'pow',
'prod',
'radians',
'remainder',
'sin',
'sinh',
'sqrt',
'tan',
'tanh',
'tau',
'trunc']
Er zitten verschillende soorten elementen in de module. Bijvoorbeeld constanten math.pi, math.tau en math.e.
Constanten#
Zo gebruiken we bijvoorbeeld math.pi om de waarde van \(\pi\) op te vragen. Probeer dit zelf maar eens in IDLE.
math.pi
3.141592653589793
Ook de constante van Euler (\(e\)) is zo makkelijk te vinden:
math.e
2.718281828459045
Functies#
Verreweg de meeste elementen van math zijn ingebouwde functies. Voorbeelden zijn de wiskundige functies math.sin (sinus), math.cos (cosinus), math.exp (exponentiele functie met basis \(e\)), of math.sqrt (vierkantswortel).
math.sin
<function math.sin(x, /)>
Er zijn ook functies die getallen kunnen converteren: math.degrees (radialen naar graden), math.radians (graden naar radialen)
math.degrees
<function math.degrees(x, /)>
Functies gebruik je meestal in combinatie met een input. Deze geef je door aan de functie binnen ronde haakjes:
Hoeveel graden is \(\frac{\pi}{2}?\)
math.degrees(math.pi / 2)
90.0
Wat is de tangens van \(\frac{\pi}{4}\)?
math.tan(math.pi / 4)
0.9999999999999999
Hoe lang is de schuine zijde van een rechthoekige driehoek met rechte zijden 3 en 4?
math.sqrt(3 ** 2 + 4 ** 2)
5.0
1.2.2. Documentatie (help!)#
Soms kun je aan de naam van de functie al wel zien wat er precies de bedoeling van is, en soms is dat niet meteen duidelijk. Bijvoorbeeld voor de functie math.tan bleek dat we de input in radialen moesten geven. Als je met een vraag zit over een functie, kun je het beste even de documentatie raadplegen. Dat doe je als volgt:
help(math.tan)
Help on built-in function tan in module math:
tan(x, /)
Return the tangent of x (measured in radians).
In dit geval zien we dat de functie math.sqrt een ingangsargument nodig heeft, omdat er (x, /) achter de naam staat. Soms staat er iets anders achhter, bijvoorbeeld (x, y, /). Dat betekent dat de functie waarvoor je de documentatie bekijkt meerdere ingangsargumenten nodig heeft. Deze scheiden we met komma’s als we de functie aanroepen. Een voorbeeld van zo’n functie is de math.pow-functie.
help(math.pow)
Help on built-in function pow in module math:
pow(x, y, /)
Return x**y (x to the power of y).
math.pow(2, 4)
16.0
Je kunt natuurlijk ook online zoeken als je meer wilt weten. De beste plek om meer informatie over math zelf te vinden is hier: https://docs.python.org/3/library/math.html.
1.2.3. Gebruik van functies#
Wanneer je een van deze functies wilt gebruiken moet je aan Python vertellen dat de functie in de module math zit. Om dit te doen typ je eerst de naam van de module, gevolgd door een punt en de naam van de functie. Als je bijvoorbeeld de cosinus wilt nemen van \(\frac{\pi}{4}\) dan kan je daar de volgende code voor gebruiken.
math.cos(math.pi / 4)
0.7071067811865476
Als het goed is weet je dat dit getal gelijk is aan \(\frac{1}{\sqrt{2}}\).
1 / math.sqrt(2)
0.7071067811865475
Logarithme#
Een speciaal geval is de functie math.log, die je kunt gebruiken om de logarithme te nemen. De help-functie geeft de volgende informatie.
help(math.log)
Help on built-in function log in module math:
log(...)
log(x, [base=math.e])
Return the logarithm of x to the given base.
If the base not specified, returns the natural logarithm (base e) of x.
Als we dus math.log(x) invoeren, krijgen we dus eigenlijk \(\ln(x) = \log_e(x)\). Als we de logarithme met een andere basis willen weten, kunnen we:
specifieke functies gebruiken:
math.log10enmath.log2;de basis specificeren met een extra argument, bijvoorbeeld
math.log(x, 7)voor \(\log_{7}(x)\).
