Обчислювати експоненціальні та логарифмічні функції в Python (exp, log, log10, log2)

Бізнес

Використовуючи math, стандартний модуль 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) повертає логарифм x з 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