Використовуючи 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