Modul Math jazyka Python

Základný modul jazyka Python obsahuje iba základné matematické operácie. Ak potrebujeme v programe použiť zložitejšie operácie a funkcie, buď ich musíme naprogramovať alebo importovať modul, ktorý matematické funkcie obsahuje. Takýmto modulom je napríklad modul math, ktorý je súčasťou štandardnej distribúcie. Príkazy modulu sprístupníme príkazom import\, math. Ak potrebujeme pracovať s väčšou prenosťou, musíme si doinštalovať špeciálny matematický modul, napríklad mpmath.

Všimnite si, že funkcie pre čísla typu float často vracajú už na prvý pohľad nepresné hodnoty. Vyplýva to z vnútornej reprezentácie čísel s plávajúcou desatinnou čiarkou. Reálne čísla, ktoré majú nekonečný desatinný rozvoj, sú v počítačoch implementované s nejakou presnosťou a tak nekonečné množstvo reálnych čísel počítač reprezentuje ako jedno jediné číslo. Celočíselná časť čísla po istú veľkosť  čísel je reprezentovaná presne, desatinná časť je reprezentovaná na istý počet platných číslic. Pri vašich súčasných matematických znalostiach si nateraz stačí uvedomovať, že počítač môže počítať s ľubovoľnou, ale nikdy nie s absolútnou presnosťou s výnimkou počítania s celými číslami. Pri nich je obmedzený na ich absolútnu veľkosť. Pri bežných výpočtoch nám táto presnosť postačuje, každý program má nejaké hranice svojich vstupov a výstupov (priveľmi malé čísla sú vyčíslené ako nula, priveľmi veľké spôsobia oznam o chybe pretečenia alebo „zmrzne“). Ak by sme potrebovali naprogramovať čosi, čo je mimo bežných hraníc, museli by sme zväčšiť počet bytov (pamäťových buniek), ktorými sú príslušné čísla reprezentované. V nasledujúcom zozname funkcií modulu Math som vypustil  funkcie, ktoré pravdepodobne nebudete potrebovať. Úplný zoznam nájdete na stránke, ktorá je uvedená na konci článku, z ktorej som čerpal podklady pre zoznam príkazov modulu math.

Zoznam funkcií

Poznámka: Ak v popise príkazu je čosi v hranatých zátvorkách [ ], daný parameter /parametre je nepovinný/sú nepovinné.

Konštanty

math.pi
Ludolfovo číslo alebo tiež číslo pí (\pi). Vracia hodnotu \color{blue}3.14159263589793.

Je to transcendentné číslo – má nekonečný desatinný rozvoj a neexistuje perióda čísel, ktorá by sa od nejakého miesta stále opakovala.

math.e
Eulerovo číslo, v matematike označované symbolom e. Vracia hodnotu \color{blue}2.718281828459045

Je to transcendentné číslo.

Funkcie súvisiace s teóriou čísel a reprezentáciou čísel

math.ceil(x)
Vracia najmenšie celé číslo, ktoré je väčšie alebo rovné x. Príklady:  math.ceil(5.1) vypíše \color{blue}6, math.ceil(-5.1) vypíše \color{blue}5.

math.fabs(x)
Vracia absolútnu hodnotu x. Pre kladné čísla a nulu je výsledok rovný x, pre záporné čísla je výsledok rovný -x.

math.factorial(x)
Vracia faktoriál čísla x. Faktoriál je súčin činiteľov od 1 po x, pre x=0 je faktoriál definovaný ako 1. Pozor: Číslo x musí byť celé nezáporné, inak sa vypíše chybová hláška.

math.floor(x)
Vracia najväčšie celé číslo, ktoré je menšie alebo rovné x. Príklady: math.floor(-5.9) vráti \color{blue}-6, math.floor(5.9) vráti \color{blue}5.

math.fmod(x, y)
Vracia x modulo y, inými slovami zvyšok po delení čísla x číslom y. Oproti operácii x%y je výsledok typu float a nie typu integer. Funkcia fmod je definovaná aj pre reálne čísla, ako najväčšie číslo, ktoré je rovné x-n*y a je menšie než y.

math.gcd(a, b)
Vracia najväčší spoločný deliteľ čísel a a b. Math.gcd(0,0) vracia hodnotu 0.  Pozor: Čísla a a b musia byť celé čísla, inak sa vypíše chybová hláška.

math.modf(x)
Vracia desatinnú a celočíselnú časť čísla x, math.modf(5.935) vypíše \color{blue}(0.9349999999999996, 5.0). Všimnite si, že desatinná časť nie je úplne presná.

math.trunc(x)
Vracia celú časť čísla x.

Mocniny a logaritmické funkcie

math.exp(x)
Vracia x-tú mocninu eulerovho čísla, je to ekvivalnet príkazu e**x, oproti ktorému vracia výsledok s väčším počtom platných číslic. Napríklad:
>>> math.e**3.14
\color{blue}23.10386685872218
>>> math.exp(3.14)
\color{blue}23.103866858722185

math.expm1(x)
Vracia x-tú mocninu Eulerovho čísla mínus jedna. Je to ekvivalent príkazu e**x-1 alebo príkazu exp(x)-1. Pre veľmi malé čísla x rozdiel exp(x)-1 vracia výsledok  s výraznou chybou, príkaz expm1(x) vracia výsledok s najväčšou možnou presnosťou. Príklad:
>>>from\, math\, import\, exp,expm1
>>>exp(1e-5)-1
\color{blue}1.0000050000069649e-05
>>>expm1(1e-5)
\color{blue}1.0000050000166668e-05

math.log(x[,base])
Ak sa funkcia použije s jedným parametrom, výsledok je prirodzený logaritmus. Inak je base základ logaritmu. Príklad:

math.log1p(x)
Vracia prirodzený logaritmus čísla 1+x. Je vhodné  použiť túto funkciu, ak je x blízke nule. Príklad:

>>> math.log(1.00001)
\color{blue}}9.999950000398841e-06
>>> marh.log1p(0.00001)
>>> math.log1p(0.00001)
\color{blue}}9.99995000033333e-06

math.log10(x)
Vracia dekadický  logaritmus x. Výsledok je presnejší alebo rovnako presný ako  dáva <code class="docutils literal"><span class="pre">log(x,</span> <span class="pre">10).
Príklad:
>>> math.log(3,10)
\color{blue}0.47712125471966244
>>> math.log10(3)
\color{blue}0.47712125471966244
>>> math.log10(30)
\color{blue}1.4771212547196624
>>> math.log(30,10)
\color{blue}1.4771212547196624
Pre 3 vrátili obe funkcie rovnaký výsledok, pre 30 vracia funkcia log10(30) o jednu platnú číslicu navyše.
math.pow(x, y)
Vracia x umocnené na y. Ak je x záporné a y nie je celé číslo, výsledok nie je definovaný a vypíše sa chybová hláška. Poznámka: Pokiaľ by ste potrebovali pracovať s kompexnými číslami, treba použiť modul </em>cmathNa rozdiel od zabudovaného operátor ** funkcia konvertuje oba parametre na typ float. Ak potrebujete pracovať s presnými celými číslami, použite operátor **.
math.sqrt(x)
Vracia druhú odmocninu x.

Trigonometrické funkcie

Všetky trigonometrické funkcie majú ako vstupný parameter hodnotu v radiánoch. Ak potrebujete pracovať so stupňami, musíte použiť konverzné funkcie na prevod stupňov na radiány alebo na prevod radiánov na stupne.

math.degrees(x)
Konvertuje veľkosť uhla z radiánov na stupne.
math.radians(x)
Konvertuje veľkosť uhla zo stupňov na radiány.
 Poznámka: Keďže trigonometrické funkcie sú periodické, ich inverzné funkcie sú prevedené na interval <0;2\pi>.
math.acos(x)
Vracia arcus cosínus x.
math.asin(x)
Vracia arcus sínus x.
math.atan(x)
Vracia arcus tangens x.
math.atan2(y, x)
Vracia arcus tangens uhla, ktorý zviera úsečka spájajúca body [0;0] a [x;y] s kladnou polpriamkou osi x. Výsledok je v radiánoch medi -\pi\,a\,\piReturn atan(y / x), in radians. Napríklad atan(1) aj atan2(1,1) je \cfrac{\pi}{4}, ale atan(-1,-1) je \cfrac{-3\pi}{4}.
math.cos(x)
Vracia kosínus x.
math.hypot(x, y)
Vracia veľkosť vektora (x,y), menovite vracia hodnotu  \sqrt{x^2+y^2}.
math.sin(x)
Vracia sínus x.
math.tan(x)
Vracia  tangens x.
Ak potrebujete pracovať s väčšou presnosťou, použite modul mpmath.

Zdroje:

  • Voľne preložené, spracované a doplnené  na základe stránky https://docs.python.org/3/library/math.html verzia z 27.4.2017
  • Matematické pojmy som spracoval na základe článkov slovenskej wikipédie
  • Všetky uvedené príklady som otestoval v Pythone 3.6.0. V iných verziách Pythonu a s inou verziou modulu Math sa môžu zobrazovať iné výsledky.
print

Pridaj komentár

Vaša e-mailová adresa nebude zverejnená. Vyžadované polia sú označené *