Стыдные вопросы о логарифмах: всё, что нужно знать программисту
Объясняем, почему не стоит бояться логарифмов и как их считать в Python.
Иллюстрация: Оля Ежак для Skillbox Media
Прежде чем начать обсуждение, давайте немного освежим знания и решим несколько стандартных задачек:
- Чему равен log3 81?
- А lg 2 × lb 10?
- А сумма log216 2 + log216 3?
Если вы легко прорешали все три примера в уме, не пользуясь калькулятором, — можете сразу переходить к заключительной главе. Для тех же, кто слегка подзабыл школьные годы чудесные, — буквально пять минут ликбеза.
Что такое логарифм
По большому счёту, логарифм — это просто перевёрнутая степень. Рассмотрим выражение 23 = 8. В нём:
- 2 — основание степени;
- 3 — показатель степени;
- 8 — результат возведения в степень.
У возведения в степень существует два обратных выражения. В одном мы ищем основание (это извлечение корня), в другом — показатель (это логарифмирование).
Таким образом, выражение 23 = 8 можно превратить в log2 8 = 3.
Закрепляем знания: логарифм — это число, в которое нужно возвести 2 (основание степени), чтобы получить 8 (результат возведения в степень).
Форма записи неинтуитивна, и поначалу можно легко спутать основание со степенью. Чтобы избежать этого, можно использовать следующее правило:
Основание у логарифма, как и у возведения в степень, находится внизу.
Чтобы лучше запомнить структуру записи, посмотрите на эти выражения и постарайтесь понять их смысл:
- log3 9 = 2
- log4 64 = 3
- log5 625 = 4
- log7 343 = 3
- log10 100 = 2
- log2 128 = 7
- log2 0,25 = −2
- log625 125 = 0,75
В общем виде запись logAB читается так: логарифм B по основанию A.
Что такое натуральный логарифм
Главная часть любого логарифма — его основание. Именно наличие общего основания у нескольких логарифмических функций позволяет проводить с ними различные операции.
Основанием натурального логарифма является число Эйлера (e) — иррациональное число, приблизительно равное 2,71828.
На всякий случай напомним, что такое иррациональные числа. Так называют числа, которые нельзя записать в виде обыкновенной дроби с целыми числителем и знаменателем. При этом знаменатель не должен быть равен нулю.
Например, 0,333… — рациональное число, потому что его можно записать как 1/3. А вот число Пи или корень из 2 — иррациональны.
Так как натуральные логарифмы часто используются, для них ввели особый способ записи: ln x — это то же самое, что loge x.
Что такое e
Представим кристалл, который весит 1 кг и растёт со скоростью 100% в год. Можно ожидать, что через год он будет весить 2 кг, но это не так.
Каждая новая выращенная часть начнёт растить свою собственную. Когда в кристалле будет 1,1 кг, он будет расти со скоростью 1,1 кг в год, а когда в нём будет 1,5 кг — со скоростью 1,5 кг в год. Математики подсчитали, что через год масса кристалла составит e, или ≈ 2,71828 кг.
Такой рост называется экспоненциальным. По экспоненте размножаются бактерии, увеличиваются популяции, приумножаются доходы, растут снежные комья, распадается радиоактивное вещество и остывают напитки.
Зачем нужны натуральные логарифмы
Чтобы узнать, какой массы достигнет кристалл через три, пять, десять лет, нужно возвести e в соответствующую степень.
e3 ≈ 20,0855 кг
e5 ≈ 148,4132 кг
e10 ≈ 22 026,4658 кг
Но как рассчитать, когда кристалл будет весить тонну? Составим уравнение:
ex = 1000
Нам известны основание степени и результат возведения в степень — осталось найти её показатель. Ничего не напоминает? Это ведь и есть логарифм x = loge 1000! Или, если использовать сокращённую запись, x = ln 1000.
Подставим в калькулятор и выясним, что x ≈ 6,9. Именно столько лет потребуется кристаллу, чтобы его масса достигла тонны.
Какие ещё есть виды логарифмов: десятичный и двоичный
Десятичный логарифм — логарифм, основание которого равно 10. Он обозначается lg x и очень удобен, потому что с ним легко вычислять круглые числа.
Двоичный логарифм — логарифм, основание которого равно 2. Он обозначается lb x и часто используется программистами, потому что компьютеры думают и считают в двоичной системе.
Свойства и формулы логарифмов
Список операций, которые можно совершать с логарифмами, ограничен. Если вы запомните все и научитесь их выполнять, то сможете щёлкать логарифмические задачки, как семечки.
У всех логарифмов есть ограничения. Их основание и аргумент должны быть больше нуля, при этом основание не может быть равно единице. На математическом языке это звучит так:
Перейдём к свойствам логарифмов. Они работают в обе стороны, и их применяют как слева направо, так и справа налево.
1. Логарифм единицы по любому основанию всегда равен нулю:
Например: log17 1 = 0
2. Логарифм, где число и основание совпадают, равен единице:
Например: log17 17 = 1
3. Основное логарифмическое тождество:
Например: log17 175 = 5
4. Логарифм произведения чисел равен сумме их логарифмов:
Например: log5 12,5 + log5 10 = log5 (12,5 × 10) = log5 125 = 3
5. Логарифм дроби равен разности логарифмов числителя и знаменателя:
Например: log3 63 − log3 7 = log3 63/7 = log3 9 = 2
6. Если основание или аргумент возведены в степень, то их можно удобно выносить перед логарифмом:
Из этих двух формул следует:
Например: log23 49 = 9/3 × log2 4 = 3 × 2 = 6
7. Если нам неудобно основание логарифма, то его можно изменить:
Например: log25 125 = log5 125/log5 25 = 3/2 = 1,5
Из этой формулы следует, что мы можем поменять местами основание и аргумент вот так:
Например: log16 4 = 1/log4 16 = 1/2 = 0,5
Как решать логарифмы: попробуйте сами
А теперь возвращаемся к задачам, которые мы дали в начале статьи.
Пример 1
log3 81
Вспомните, что 81 — это 92. А 9 — это 32. Таким образом:
log3 81 = log3 92 = log3 32+2 = log3 34
Теперь логарифм не представляет для нас никаких сложностей. Воспользуемся свойством степени и вынесём четвёрку.
log3 34 = 4 × log3 3 = 4 × 1 =4
Ответ: 4.
Пример 2
lg 2 × lb 10
Переведём сокращённые записи в полный вид:
lg 2 × lb 10 = log10 2 × log2 10
Приведём оба логарифма к одному основанию.
log10 2 × log2 10 = 1/log2 10 × log2 10 = log2 10/log2 10 = 1
Ответ: 1.
Пример 3
log216 2 + log216 3
Воспользуемся свойством суммы.
log216 2 + log216 3 = log216 2 × 3 = log216 6
Представим 216 в виде степени числа 6 и вынесем с помощью свойства степени.
log216 6 = log63 6 = 1/3 × log6 6 = 1/3 × 1 = 1/3
Ответ: 1/3.
Как считать логарифмы в Python
Чтобы работать с логарифмическими выражениями в Python, необходимо импортировать модуль math:
И теперь посчитаем log2 8, используя метод math.log (b, a):
Обратите внимание на два момента. Во-первых, мы сначала передаём функции аргумент и только потом — основание. Во-вторых, функция всегда возвращает тип данных float, даже если результат целочисленный.
Если мы не передаём функции основание, то логарифм по умолчанию считается натуральным:
Для подсчёта десятичного и двоичного логарифма есть отдельные методы:
Ещё в Python есть специфичный метод, который прибавляет к аргументу единицу и считает натуральный логарифм от получившегося числа:
Когда х близок к нулю, этот метод даёт более точные результаты, чем math.log (1+x). Сравните:
Это все основные инструменты для работы с логарифмами в Python.