Вылічыць экспанентныя і лагарыфмічныя функцыі ў Python (exp, log, log10, log2)

Бізнэс

Выкарыстоўваючы матэматыку, стандартны модуль Python для матэматычных функцый, вы можаце разлічваць экспанентныя і лагарыфмічныя функцыі (натуральны лагарыфм, звычайны лагарыфм і двайковы лагарыфм).

Тут тлумачыцца наступнае разам з прыкладам кода.

  • Падстава натуральнага лагарыфма (лік Нэпье):math.e
  • Магутнасць::**аператар,pow(),math.pow()
  • Квадратны корань (корань):math.sqrt()
  • Экспанентная функцыя (натуральная экспанентная функцыя):math.exp()
  • лагарыфмічная функцыя:math.log(),math.log10(),math.log2()

Падстава натуральнага лагарыфма (лік Нэпье):math.e

Падстава натуральнага лагарыфма (лік Нэп’е) падаецца ў матэматычным модулі ў выглядзе канстанты, якая пазначаецца math.e.

import math

print(math.e)
# 2.718281828459045

Магутнасць: ** аператар, pow(), math.pow():**аператар,pow(),math.pow()

Для вылічэння магутнасці выкарыстоўвайце аператар **, убудаваную функцыю pow() або math.pow().

У-квадрат х атрымліваецца наступным чынам

  • 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-ступень x. Гэта той жа разлік, што і pow(x, y) % z, але pow(x, y, z) больш эфектыўны.

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

Квадратны корань (корань):math.sqrt()

Квадратны корань (корань) можна ўсталяваць у **0,5 з дапамогай ** або math.sqrt().

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()

Каб вылічыць ступень асновы натуральнага лагарыфма (лік Нэпье) e, выкарыстоўвайце math.exp().

math.exp(x) вяртае 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) вяртае лагарыфм х з асновай y.

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

Калі другі аргумент апушчаны, натуральны лагарыфм паказаны ніжэй.

лагарыфм

У матэматыцы натуральны лагарыфм (лагарыфм з лікам Нэп’е e ў якасці падставы), прадстаўлены log або ln, можа быць вылічаны з дапамогай math.log(x).

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

лагарыфм (падстава 10)

Звычайны лагарыфм (лагарыфм з падставай 10) можна вылічыць з дапамогай math.log10(x), што больш дакладна, чым math.log(x, 10).

print(math.log10(100000))
# 5.0

двайковы лагарыфм

Двайковы лагарыфм (лагарыфм з падставай 2) можна вылічыць з дапамогай math.log2(x), што больш дакладна, чым math.log(x, 2).

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