MIKKO RAHIKKA

The electrical things have their lives too, paltry as those lives are.


Abitti 2:n Abicoden Pythonin matemaattiset moduulit – math, random, statistics, decimal, fraction

Python sisältää on runsaasti erilaisia moduuleja. Tässä tutkailen millaisia matemaattisia kirjastoja on Abitti 2:n Abicodessa. Esitän esimerkkien avulla joitakin math, random, statistics, decimal ja fractions moduulien funktioita.

Valitsen esimerkkeihin sellaisia funktioita, joista voisi teoriassa olla lukiolaisille apua pitkän tai lyhyen matikan opinnoissa ja ylioppilaskirjoituksissa. Tarinan lopun lähteissä on linkki tiedostoon, jossa on Googlen Colabissa samat esimerkit ja pikkuisen jotain muuta aiheeseen liittyvää. Kaikkien moduulien ”viralliset” käyttöohjeet löytyvät lähteet-luvusta. Abicoden verkkoversio löytyy osoitteesta https://abicode.abitti.fi/  Se on identtinen Abitti 2:n version kanssa. Käytän tämän tarinan esimerkeissä Abicoden verkkoversiota.

sisäänrakennetut matemaattiset funktiot

Pythonin perusasennus sisältää aika monta matemaattista funktiota. Funktioiden toiminta pitäisi selvitä seuraavasta esimerkistä ja käyttöohjeesta, linkki löytyy tarinan lopusta. Siellä on myös linkki Colab-tiedostoon, jossa on esimerkkikoodit ja vähän muutakin.

help ja moduulit

Asennetut moduulit saa näkyviin help-funktion avustuksella. Abicoden listauksessa on noin 260 moduulia.

Valitsen matematiikkaan liittyviä moduleja jonkinlaisessa tärkeysjärjestyksessä. Tässä esitän joitakin funktioita seuraavista moduuleista: math, random, statistics, decimal ja fraction.

math-moduuli

Math-moduuli on keskeisin matematiikan työkalu Pythonissa. Se sisältää yleisimmät matikan funktiot ja vakiot. Moduulin kaikki funktiot saa näkyville help-funktion avulla. Toisaalta python.org-sivuston math ohjesivu näyttää funktiot fiksummin. Linkki löytyy lähteistä.

Seuraavassa luettelen tärkeimpiä funktioita aiheittain. Funktioiden toiminta pitäisi selvitä esimerkistä.

Ceil on katto, se tuottaa lukusuoralta seuraavan kokonaisluvun, floor on lattia se tuottaa lukusuoralta edellisen kokonaisluvun, trunc katkaisee desimaaliosan pois. Trunc toimii samalla tavoin kuin int, mutta sen avulla ei saa muutettua merkkijonoa luvuksi tyyliin int(¨42¨) = 42.

Sqrt on neliöjuuri, cbrt kuutio- eli kolmasjuuri, log(x) on luonnollinen logaritmi, log(x, n) yleinen logaritmi ja log10 on 10-kantainen logaritmi. Pow(x, n) on aina liukuluku (float) toisin kuin x**n, jonka arvo on kokonaisluku (int) jos x ja n ovat kokonaislukuja.

random-moduuli

Random sisältää satunnaislukuihin liittyviä funktioita. Funktio random() antaa liukuluvun (float) väliltä 0 ≤ x < 1, uniform(a, b) liukuluvun väliltä a ≤ x < b, randint(a, b) kokonaisluvun (int) väliltä a ≤ x ≤ b ja randrange(n) kokonaisluvun väliltä 0 ≤ x ≤ n-1.

statistics-moduuli

Statistics sisältää keskeisimmät tilastolliset funktiot. Funktiot toimivat, kun laskettavissa listoissa kaikki oliot ovat samaa tyyppiä eli joko int, float, Decimal tai Fraction. Jos tutkittavassa listassa on NaN, niin laskenta ei toimi kaikilla funktioilla.

Stdev on otoskeskihajonta (nimittäjässä n-1), pstdev on keskihajonta (nimittäjässä n).

decimal

Decimal-moduuli mahdollistaa tarkan laskennan desimaaliluvuilla. Lue pyöristysvirheistä artikkelistani ”Pyöristysvirheistä Pythonissa ja GeoGebrassa”.

Decimals toimii myös sqrt, exp,  log10 ja ln -funktioiden kanssa. Jos haluat laske piin arvon useammalla desimaalilla, niin ohjedokumentissa on funktio, joka laskee sen.

Decimal-luvuilla voi laskea peruslaskutoimituksilla. Tosin viimeisiin desimaaleihin tullee pyöristysvirhettä.

fraction

Fraction-moduulin avulla voi laskea murtolukulaskuja.

lopuksi

Edellä esitettyjen moduulien lisäksi matematiikkaan liittyviä moduuleja Abicodessa ovat calendar, datetime ja cmath. Ne eivät välttämättä liity lukiomatematiikkaan, jätän niiden tutkimisen tulevaisuuteen.

lähteet

Esimerkkitiedostot Colabissa
https://colab.research.google.com/drive/1yAqjQdsM9uSSA6vhRtscb5Zb1_z_yWb4?usp=sharing

Abicode verkossa
https://abicode.abitti.fi/

Pythonin Built-in funktiot
https://docs.python.org/3/library/functions.html

math-moduuli ohje python.orgissa
https://docs.python.org/3/library/math.html

random — Generate pseudo-random numbers
https://docs.python.org/3/library/random.html

statistics — Mathematical statistics functions
https://docs.python.org/3/library/statistics.html

decimal — Decimal fixed-point and floating-point arithmetic
https://docs.python.org/3/library/decimal.html
fractions — Rational numbers
https://docs.python.org/3/library/fractions.html

Pyöristysvirheistä Pythonissa ja GeoGebrassa
https://mikkorahikka.blog/2025/03/20/pyoristysvirheista-pythonissa-ja-geogebrassa/

Koodiesimerkit Colabissa
https://colab.research.google.com/drive/1yAqjQdsM9uSSA6vhRtscb5Zb1_z_yWb4?usp=sharing

Jätä kommentti

This site uses Akismet to reduce spam. Learn how your comment data is processed.