Код
#статьи

Стыдные вопросы о логарифмах: всё, что нужно знать программисту

Объясняем, почему не стоит бояться логарифмов и как их считать в 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 кг

Но как рассчитать, когда кристалл будет весить тонну? Составим уравнение:

e= 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:

import math

И теперь посчитаем log2 8, используя метод math.log (b, a):

print (math.log (8, 2))
>>> 3.0

Обратите внимание на два момента. Во-первых, мы сначала передаём функции аргумент и только потом — основание. Во-вторых, функция всегда возвращает тип данных float, даже если результат целочисленный.

Если мы не передаём функции основание, то логарифм по умолчанию считается натуральным:

#math.e — метод для вызова числа Эйлера.
print (math.log (math.e))
>>> 1.0

Для подсчёта десятичного и двоичного логарифма есть отдельные методы:

#Для десятичного.
print (math.log10 (100))
>>> 2.0

#Для двоичного.
print (math.log2 (512))
>>> 9.0

Ещё в Python есть специфичный метод, который прибавляет к аргументу единицу и считает натуральный логарифм от получившегося числа:

x = math.e
print (math.log1p (x-1))
>>> 1.0

Когда х близок к нулю, этот метод даёт более точные результаты, чем math.log (1+x). Сравните:

x = 0.00001

print (math.log(x+1))
>>> 9.999950000398841e-06
print (math.log1p(x))
>>> 9.99995000033333e-06

Это все основные инструменты для работы с логарифмами в Python.


Изучайте IT на практике — бесплатно

Курсы за 2990 0 р.

Я не знаю, с чего начать
Научитесь: Профессия Python-разработчик Узнать больше
Понравилась статья?
Да

Пользуясь нашим сайтом, вы соглашаетесь с тем, что мы используем cookies 🍪

Ссылка скопирована