Python дээр экспоненциал болон логарифм функцийг тооцоолох (exp, log, log10, log2)

Бизнес эрхэлдэг

Python-ийн математик функцүүдийн стандарт модулийг ашиглан та экспоненциал болон логарифм функцийг (натурал логарифм, энгийн логарифм, хоёртын логарифм) тооцоолж болно.

Дараахыг жишээ кодын хамт энд тайлбарлав.

  • Натурал логарифмын суурь (Napier тоо):math.e
  • Эрчим хүч::**оператор,pow(),math.pow()
  • Квадрат үндэс (үндэс):math.sqrt()
  • Экспоненциал функц (байгалийн экспоненциал функц):math.exp()
  • логарифм функц:math.log(),math.log10(),math.log2()

Натурал логарифмын суурь (Napier тоо):math.e

Натурал логарифмын суурь (Napier тоо) нь математикийн модульд тогтмол хэлбэрээр өгөгдсөн бөгөөд math.e гэж тэмдэглэнэ.

import math

print(math.e)
# 2.718281828459045

Эрчим хүч: ** оператор, pow(), math.pow():**оператор,pow(),math.pow()

Чадлыг тооцоолохын тулд ** оператор, суулгасан функц pow(), эсвэл math.pow()-ийн аль нэгийг ашиглана уу.

x-ийн y-квадратыг дараах байдлаар авна

  • 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() нь аргументыг хөвөгч цэгийн төрөл болгон хувиргадаг. Нөгөөтэйгүүр, Python-ийн суулгасан функц pow() нь төрөл тус бүрээр тодорхойлсон __pow()__-г ашигладаг.

Жишээлбэл, pow() нь нийлмэл төрлүүдийг аргумент болгон зааж өгөхийг зөвшөөрдөг боловч math.pow() нь төвөгтэй төрлүүдийг хөвөгч төрлүүдэд хөрвүүлэх боломжгүй тул алдаа гарна.

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

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

Python-д суулгасан pow() функц нь мөн гурав дахь аргумент болох pow(x, y, z)-ийг зөвшөөрдөг бөгөөд энэ нь z-ийн үлдэгдлийг (үлдэгдэл) х-ийн y-цэгт буцаана. Энэ нь pow(x, y) % z-тэй ижил тооцоо боловч pow(x, y, z) нь илүү үр дүнтэй байдаг.

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

Квадрат үндэс (үндэс):math.sqrt()

Квадрат язгуурыг (язгуур) ** эсвэл math.sqrt() ашиглан **0.5 болгож тохируулж болно.

print(2**0.5)
# 1.4142135623730951

print(math.sqrt(2))
# 1.4142135623730951

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

math.pow()-ын нэгэн адил math.sqrt() нь аргументуудыг боловсруулахад хөвөгч цэгийн төрөл болгон хувиргадаг тул хөвөгч төрөл рүү хөрвүүлэх боломжгүй төрлийг зааж өгвөл TypeError гарч ирнэ.

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

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

Мөн math.sqrt() нь сөрөг утгыг боловсруулж чадахгүй тул ValueError гарч ирнэ.

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

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

Нарийн төвөгтэй тоонуудтай ажиллах үед ** операторыг ашигласан жишээ нь алдааг харуулж байгаа боловч cmath модуль нь илүү нарийвчлалтай утгыг өгдөг гэдгийг анхаарна уу. Сөрөг утгыг мөн зохицуулж болно.

import cmath

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

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

Экспоненциал функц (байгалийн экспоненциал функц):math.exp()

Натурал логарифмын суурийн хүчийг (Napier тоо) e тооцоолохын тулд math.exp() ашиглана уу.

math.exp(x) нь e-ийн х квадратыг буцаана.
math.exp(x) нь “math.e ** x”-тэй тэнцүү биш бөгөөд math.exp(x) илүү нарийвчлалтай.

print(math.exp(2))
# 7.38905609893065

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

логарифм функц:math.log(),math.log10(),math.log2()

Логарифм функцийг тооцоолохдоо math.log(),math.log10(),math.log2()-г ашиглана.

math.log(x, y) нь у суурьтай х-ийн логарифмыг буцаана.

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

Хэрэв хоёр дахь аргументыг орхигдуулсан бол натурал логарифмийг доор харуулав.

логарифм

Математикийн хувьд log эсвэл ln-ээр илэрхийлэгдэх натурал логарифм (суурь нь Napier e тоо бүхий логарифм)-ийг math.log(x) ашиглан тооцоолж болно.

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

логарифм (суурь 10)

Энгийн логарифмыг (10 суурьтай логарифм) math.log(x, 10)-аас илүү нарийвчлалтай math.log10(x) ашиглан тооцоолж болно.

print(math.log10(100000))
# 5.0

хоёртын логарифм

Хоёртын логарифмыг (2 суурьтай логарифм) math.log2(x)-ээр тооцоолж болох бөгөөд энэ нь math.log(x, 2)-аас илүү нарийвчлалтай.

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