Math.log: примеры (JAVASCRIPT)

Использование Math.log для вычисления логарифмов в JavaScript
Раздел: Математика, Логарифмы
Math.log(number): number

Основы функции Math.log

Функция Math.log() в JavaScript вычисляет натуральный логарифм (логарифм по основанию e, где e — число Эйлера, приблизительно равное 2.718) от переданного числа.

Использование функции актуально в математических расчетах, научных вычислениях, финансовом моделировании и алгоритмах, где требуется логарифмическая шкала.

Синтаксис: Math.log(x)

  • x: Число, для которого вычисляется натуральный логарифм. Должно быть положительным. Принимает значения типа Number.
  • Возвращаемое значение: Натуральный логарифм числа x (logₑ(x)). Тип — Number.
  • Если x равно NaN или меньше 0, возвращается NaN.
  • Если x равно 0, возвращается -Infinity.
  • Если x равно +Infinity, возвращается +Infinity.
  • Если аргумент не указан, возвращается NaN.

Простые примеры использования

Примеры демонстрируют базовое поведение функции.

console.log(Math.log(1));
0
console.log(Math.log(Math.E));
1
console.log(Math.log(10));
2.302585092994046
console.log(Math.log(0));
-Infinity
console.log(Math.log(-5));
NaN
console.log(Math.log('100'));
4.605170185988092

Похожие функции в JavaScript

  • Math.log10(x): Вычисляет логарифм по основанию 10. Более удобен для работы с десятичными логарифмами.
  • Math.log2(x): Вычисляет логарифм по основанию 2. Часто применяется в информатике и алгоритмах.
  • Math.log1p(x): Возвращает натуральный логарифм от 1 + x (logₑ(1+x)). Повышает точность для значений, близких к нулю.
  • Math.exp(x): Функция, обратная натуральному логарифму, возвращает eˣ.
  • Выбор функции: Math.log() используется для натуральных логарифмов. Для логарифмов по другим основаниям предпочтительнее Math.log10() или Math.log2(). Для малых чисел рекомендуется Math.log1p().

Аналоги функции в других языках

Python: Модуль math содержит log(x[, base]). Без второго аргумента вычисляет натуральный логарифм.

import math
print(math.log(10))
print(math.log(100, 10))
2.302585092994046
2.0

PHP: Функция log(float $num, float $base = M_E). По умолчанию основание — e.

echo log(10);
echo log(100, 10);
2.302585092994
2

MySQL: Функция LOG(X) возвращает натуральный логарифм. LOG(B, X) — логарифм X по основанию B.

SELECT LOG(10), LOG(10, 100);
2.302585092994046 2

C/C++: В стандартной библиотеке math.h функция double log(double x) вычисляет натуральный логарифм.

#include 
double result = log(10.0);
2.302585

Основное отличие JavaScript — отсутствие встроенной функции для логарифма с произвольным основанием, требуется вычисление через отношение логарифмов.

Типичные ошибки

  • Передача отрицательного числа или нуля без учета граничных значений.
  • let value = Math.log(0);
    console.log(value); // Ожидание: ошибка, реальность: -Infinity
    -Infinity
  • Использование функции для логарифма по другому основанию без преобразования.
  • // Неправильно для логарифма по основанию 10
    let log10 = Math.log(100); // Это натуральный логарифм
    // Правильно
    let log10_correct = Math.log(100) / Math.log(10);
    4.605170185988092 // Неверно
    2 // Верно
  • Передача нечислового аргумента, который не преобразуется автоматически.
  • console.log(Math.log('текст'));
    NaN
  • Игнорирование точности для чисел, близких к 1.
  • console.log(Math.log(1.000000000000001));
    console.log(Math.log1p(0.000000000000001)); // Более точный результат
    9.992007221626409e-16
    1e-15

История изменений

Функция Math.log() присутствует в JavaScript с первых версий ECMAScript 1. Существенных изменений в ее поведении не было.

В ECMAScript 2015 (ES6) добавлены родственные функции: Math.log10(), Math.log2() и Math.log1p(), которые расширили возможности работы с логарифмами, но сама Math.log() осталась неизменной.

Все реализации соответствуют стандарту IEEE 754 для операций с плавающей запятой.

Расширенные примеры

Вычисление логарифма с произвольным основанием через формулу замены основания.

Пример javascript
function logBase(x, base) {
    return Math.log(x) / Math.log(base);
}
console.log(logBase(8, 2));
3

Использование в формуле сложных процентов для расчета времени удвоения капитала.

Пример javascript
function doublingTime(annualRate) {
    // Время удвоения = ln(2) / ln(1 + r)
    return Math.log(2) / Math.log(1 + annualRate);
}
console.log(doublingTime(0.07)); // При 7% годовых
10.24476835105838 лет

Логарифмическое масштабирование данных для визуализации.

Пример javascript
let data = [1, 10, 100, 1000];
let scaled = data.map(value => Math.log(value));
console.log(scaled);
[0, 2.302585092994046, 4.605170185988092, 6.907755278982137]

Решение уравнений с использованием натурального логарифма.

Пример javascript
// Решение уравнения e^x = 20
let x = Math.log(20);
console.log(x);
console.log(Math.exp(x)); // Проверка
2.995732273553991
20

Применение в статистике для вычисления логарифмического правдоподобия.

Пример javascript
// Предположим, вероятности событий
let probabilities = [0.1, 0.4, 0.3];
let logLikelihood = probabilities.reduce((sum, p) => sum + Math.log(p), 0);
console.log(logLikelihood);
-3.506557897319982

Обработка очень больших чисел через логарифмы для избежания переполнения.

Пример javascript
let hugeProduct = Math.log(1e300) + Math.log(1e200);
console.log(hugeProduct); // Логарифм произведения
console.log(Math.exp(hugeProduct)); // Восстановление значения
1149.2684478507735
1e+500

JS Math.log function comments

En
Math.log Returns the natural logarithm (base `e`) of a number