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
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 для операций с плавающей запятой.
Расширенные примеры
Вычисление логарифма с произвольным основанием через формулу замены основания.
function logBase(x, base) {
return Math.log(x) / Math.log(base);
}
console.log(logBase(8, 2));3
Использование в формуле сложных процентов для расчета времени удвоения капитала.
function doublingTime(annualRate) {
// Время удвоения = ln(2) / ln(1 + r)
return Math.log(2) / Math.log(1 + annualRate);
}
console.log(doublingTime(0.07)); // При 7% годовых10.24476835105838 лет
Логарифмическое масштабирование данных для визуализации.
let data = [1, 10, 100, 1000];
let scaled = data.map(value => Math.log(value));
console.log(scaled);[0, 2.302585092994046, 4.605170185988092, 6.907755278982137]
Решение уравнений с использованием натурального логарифма.
// Решение уравнения e^x = 20
let x = Math.log(20);
console.log(x);
console.log(Math.exp(x)); // Проверка2.995732273553991 20
Применение в статистике для вычисления логарифмического правдоподобия.
// Предположим, вероятности событий
let probabilities = [0.1, 0.4, 0.3];
let logLikelihood = probabilities.reduce((sum, p) => sum + Math.log(p), 0);
console.log(logLikelihood);-3.506557897319982
Обработка очень больших чисел через логарифмы для избежания переполнения.
let hugeProduct = Math.log(1e300) + Math.log(1e200);
console.log(hugeProduct); // Логарифм произведения
console.log(Math.exp(hugeProduct)); // Восстановление значения1149.2684478507735 1e+500