Python-da eksponensial və loqarifmik funksiyaları hesablayın (exp, log, log10, log2)

Biznes

Riyazi funksiyalar üçün Python-un standart modulu olan riyaziyyatdan istifadə edərək, eksponensial və loqarifmik funksiyaları (təbii loqarifm, adi loqarifm və ikili loqarifm) hesablaya bilərsiniz.

Aşağıdakılar nümunə kodla birlikdə burada izah olunur.

  • Natural loqarifmin əsası (Napier nömrəsi):math.e
  • Güc::**operator,pow(),math.pow()
  • Kvadrat kök (kök):math.sqrt()
  • eksponensial funksiya (təbii eksponensial funksiya):math.exp()
  • loqarifmik funksiya:math.log(),math.log10(),math.log2()

Natural loqarifmin əsası (Napier nömrəsi):math.e

Natural loqarifmin əsası (Napier ədədi) riyaziyyat modulunda sabit kimi verilir, math.e ilə işarələnir.

import math

print(math.e)
# 2.718281828459045

Güc: ** operator, pow(), math.pow():**operator,pow(),math.pow()

Gücləri hesablamaq üçün ya ** operatorundan, daxili funksiya pow() və ya math.pow() istifadə edin.

x-in y-kvadratı aşağıdakı kimi alınır

  • 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() arqumenti üzən nöqtəli tipə çevirir. Digər tərəfdən, Python-un daxili funksiyası pow() hər növ üçün müəyyən edilmiş __pow()__ istifadə edir.

Məsələn, pow() kompleks növlərin arqumentlər kimi göstərilməsinə imkan verir, lakin math.pow() mürəkkəb tipləri float tiplərinə çevirə bilmir, nəticədə xəta baş verir.

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

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

Python-da quraşdırılmış pow() funksiyası həmçinin üçüncü arqumentə, pow(x, y, z) imkan verir ki, bu da z-nin qalığını (qalıqını) x-in y-gücünə qaytarır. Bu, pow(x, y) % z ilə eyni hesablamadır, lakin pow(x, y, z) daha səmərəlidir.

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

Kvadrat kök (kök):math.sqrt()

Kvadrat kök (kök) ** və ya math.sqrt() vasitəsilə **0.5-ə təyin oluna bilər.

print(2**0.5)
# 1.4142135623730951

print(math.sqrt(2))
# 1.4142135623730951

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

math.pow() kimi math.sqrt() də arqumentləri emal üçün üzən nöqtəli tiplərə çevirir, beləliklə, float tipinə çevrilə bilməyən növü təyin etmək TypeError ilə nəticələnəcək.

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

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

Həmçinin, math.sqrt() mənfi dəyərləri emal edə bilmir, nəticədə ValueError.

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

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

Qeyd edək ki, mürəkkəb ədədlərlə işləyərkən ** operatorundan istifadə edilən nümunə xətanı göstərir, lakin cmath modulu daha dəqiq qiymət verir. Mənfi dəyərlər də idarə oluna bilər.

import cmath

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

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

eksponensial funksiya (təbii eksponensial funksiya):math.exp()

Natural loqarifmin əsasının gücünü hesablamaq üçün (Napier nömrəsi) e, math.exp() istifadə edin.

math.exp(x) e-nin x kvadratını qaytarır.
math.exp(x) “math.e ** x” ilə ekvivalent deyil və math.exp(x) daha dəqiqdir.

print(math.exp(2))
# 7.38905609893065

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

loqarifmik funksiya:math.log(),math.log10(),math.log2()

Loqarifmik funksiyanı hesablamaq üçün math.log(),math.log10(),math.log2() istifadə edin.

math.log(x, y) əsası y olan x-in loqarifmini qaytarır.

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

İkinci arqument buraxılıbsa, təbii loqarifm aşağıda göstərilir.

loqarifm

Riyaziyyatda log və ya ln ilə təmsil olunan natural loqarifmi (əsas olaraq Napier ədədi e olan loqarifmi) math.log(x) ilə hesablamaq olar.

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

loqarifm (əsas 10)

Adi loqarifm (əsas 10 olan loqarifm) math.log(x, 10) ilə müqayisədə daha dəqiq olan math.log10(x) ilə hesablana bilər.

print(math.log10(100000))
# 5.0

ikili loqarifm

İkili loqarifm (2-ci əsaslı loqarifm) math.log(x, 2) ilə müqayisədə daha dəqiq olan math.log2(x) ilə hesablana bilər.

print(math.log2(1024))
# 10.0
Copied title and URL