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