Izračunajte eksponencijalne i logaritamske funkcije u Pythonu (exp, log, log10, log2)

Poslovanje

Koristeći matematiku, standardni Pythonov modul za matematičke funkcije, možete izračunati eksponencijalne i logaritamske funkcije (prirodni logaritam, obični logaritam i binarni logaritam).

Ovdje je objašnjeno sljedeće, zajedno s uzorkom koda.

  • Baza prirodnog logaritma (Napierov broj):math.e
  • Vlast::**operater,pow(),math.pow()
  • Kvadratni korijen (korijen):math.sqrt()
  • Eksponencijalna funkcija (prirodna eksponencijalna funkcija):math.exp()
  • logaritamska funkcija:math.log(),math.log10(),math.log2()

Baza prirodnog logaritma (Napierov broj):math.e

Baza prirodnog logaritma (Napierov broj) navedena je kao konstanta u matematičkom modulu, označena s math.e.

import math

print(math.e)
# 2.718281828459045

Snaga: ** operator, pow(), math.pow():**operater,pow(),math.pow()

Za izračunavanje snaga koristite ili operator **, ugrađenu funkciju pow() ili math.pow().

Y-kvadrat od x dobiva se na sljedeći način

  • x**y
  • pow(x, y)
  • math.pow(x, y)
print(2**4)
# 16

print(pow(2, 4))
# 16

print(math.pow(2, 4))
# 16.0

math.pow() pretvara argument u tip s pomičnim zarezom. S druge strane, Pythonova ugrađena funkcija pow() koristi __pow()__ definiran za svaki tip.

Na primjer, pow() dopušta da se složeni tipovi navedu kao argumenti, ali math.pow() ne može pretvoriti složene tipove u tipove s pomičnim stupnjem, što rezultira pogreškom.

print(pow(1 + 1j, 2))
# 2j

# print(math.pow(1 + 1j, 2))
# TypeError: can't convert complex to float

Pythonova ugrađena funkcija pow() također dopušta treći argument, pow(x, y, z), koji vraća ostatak (ostatak) z na y-potenciju x. To je isti izračun kao pow(x, y) % z, ali pow(x, y, z) je učinkovitiji.

print(pow(2, 4, 5))
# 1

Kvadratni korijen (korijen):math.sqrt()

Kvadratni korijen (korijen) može se postaviti na **0,5 pomoću ** ili math.sqrt().

print(2**0.5)
# 1.4142135623730951

print(math.sqrt(2))
# 1.4142135623730951

print(2**0.5 == math.sqrt(2))
# True

Poput math.pow(), math.sqrt() pretvara argumente u tipove s pomičnim zarezom za obradu, tako da će navođenje tipa koji se ne može pretvoriti u tip float rezultirati pogreškom TypeError.

print((-3 + 4j)**0.5)
# (1.0000000000000002+2j)

# print(math.sqrt(-3 + 4j))
# TypeError: can't convert complex to float

Također, math.sqrt() ne može obraditi negativne vrijednosti, što rezultira ValueError.

print((-1)**0.5)
# (6.123233995736766e-17+1j)

# print(math.sqrt(-1))
# ValueError: math domain error

Imajte na umu da kada se radi o kompleksnim brojevima, primjer koji koristi ** operator pokazuje pogrešku, ali cmath modul daje točniju vrijednost. Negativne vrijednosti također se mogu rukovati.

import cmath

print(cmath.sqrt(-3 + 4j))
# (1+2j)

print(cmath.sqrt(-1))
# 1j

Eksponencijalna funkcija (prirodna eksponencijalna funkcija):math.exp()

Da biste izračunali snagu baze prirodnog logaritma (Napierov broj) e, koristite math.exp().

math.exp(x) vraća x na kvadrat od e.
math.exp(x) nije ekvivalent “math.e ** x”, a math.exp(x) je točniji.

print(math.exp(2))
# 7.38905609893065

print(math.exp(2) == math.e**2)
# False

logaritamska funkcija:math.log(),math.log10(),math.log2()

Za izračunavanje logaritamske funkcije koristite math.log(),math.log10(),math.log2().

math.log(x, y) vraća logaritam od x s y kao bazom.

print(math.log(25, 5))
# 2.0

Ako je drugi argument izostavljen, dolje je prikazan prirodni logaritam.

logaritam

U matematici, prirodni logaritam (logaritam s Napierovim brojem e kao osnovom), predstavljen log ili ln, može se izračunati pomoću math.log(x).

print(math.log(math.e))
# 1.0

logaritam (baza 10)

Obični logaritam (logaritam s bazom 10) može se izračunati pomoću math.log10(x), što je točnije od math.log(x, 10).

print(math.log10(100000))
# 5.0

binarni logaritam

Binarni logaritam (logaritam s bazom 2) može se izračunati pomoću math.log2(x), što je točnije od math.log(x, 2).

print(math.log2(1024))
# 10.0