Exp: примеры (PHP)

Руководство по применению PHP функции exp с примерами вычислений
Раздел: Математические функции
exp(float $num): float

Функция exp в PHP

Функция exp() вычисляет экспоненту числа. Она возвращает значение числа e (приблизительно 2.718281828), возведенного в степень, равную переданному аргументу.

Формат вызова
exp(float $num): float

Эта функция принимает один обязательный аргумент $num типа float (число с плавающей запятой), который представляет степень, в которую возводится число e. Функция возвращает результат типа float.

Область применения

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

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

Простое вычисление
echo exp(1); // e^1
2.718281828459
Отрицательная степень
echo exp(-1); // e^{-1}
0.36787944117144
Нулевой аргумент
echo exp(0); // e^0
1
Дробная степень
echo exp(0.5); // e^{0.5}
1.6487212707001

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

pow()

Функция pow() позволяет возводить в степень любое число, а не только константу e. Она принимает два аргумента: основание и показатель степени. Предпочтительнее использовать для общего возведения в степень.

echo pow(M_E, 2); // Аналогично exp(2)
7.3890560989307
log()

Функция log() является обратной к exp() и вычисляет натуральный логарифм числа. Используется, когда требуется найти показатель степени.

$val = exp(5);
echo log($val); // Вернет 5
5
log10() и log1p()

log10() вычисляет десятичный логарифм. log1p() возвращает log(1 + число), что обеспечивает высокую точность для малых значений. Выбор зависит от требуемого основания логарифма.

Эквиваленты в других языках

Python

В Python функция math.exp() работает аналогично. Также есть константа math.e.

import math
print(math.exp(2))
7.38905609893065

Exp в Javascript

В JavaScript используется метод Math.exp() глобального объекта Math.

console.log(Math.exp(2));
7.38905609893065

Exp в MySQL

В MySQL есть одноименная функция EXP(), которую можно применять в SQL-запросах.

SELECT EXP(2);
7.38905609893065

Отличия от PHP минимальны и касаются в основном деталей реализации типов данных и точности вычислений. Семантика и результат идентичны.

Распространенные ошибки

Переполнение типа float

При передаче очень большого аргумента может произойти переполнение, и функция вернет значение INF (бесконечность).

echo exp(1000);
INF
Некорректный тип аргумента

PHP попытается преобразовать нечисловой аргумент к типу float, что может привести к неожиданным результатам или предупреждению.

echo exp("строка");
Warning: exp() expects parameter 1 to be float, string given
Потеря точности

При работе с очень малыми или большими числами возможна потеря точности из-за ограничений типа float.

echo exp(-100); // Очень малое число
3.7200759760208E-44

Изменения в новых версиях PHP

Сигнатура и поведение функции exp() остаются стабильными в течение многих версий, включая PHP 8.x. В PHP 8.0 была усилена строгость типов, поэтому передача нескалярных типов без явного приведения может вызывать TypeError. Функция продолжает возвращать результат типа float.

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

Вычисление сложного процента

Модель непрерывного начисления процентов: A = P * e^{rt}.

Пример php
$principal = 1000; // Начальная сумма
$rate = 0.05;      // Годовая ставка
$time = 3;         // Время в годах
$amount = $principal * exp($rate * $time);
echo round($amount, 2);
1161.83
Нормализация в машинном обучении (Softmax)

Функция Softmax преобразует вектор в распределение вероятностей.

Пример php
$scores = [3.0, 1.0, 0.2];
$expScores = array_map('exp', $scores);
$sumExp = array_sum($expScores);
$softmax = array_map(fn($val) => $val / $sumExp, $expScores);
print_r($softmax);
Array
(
    [0] => 0.83601880278144
    [1] => 0.11314284146556
    [2] => 0.050838355752999
)
Решение уравнения

Нахождение времени затухания сигнала до половины мощности: t = ln(0.5) / k = log(0.5) / k.

Пример php
$k = -0.1;
$halfLife = log(0.5) / $k; // ln(0.5) через log()
echo $halfLife;
6.9314718055995
Экспоненциальное сглаживание ряда

Применение формулы рекурсивного сглаживания.

Пример php
$data = [10, 12, 15, 11, 14];
$alpha = 0.3;
$smoothed = [];
$prev = $data[0];
foreach ($data as $value) {
    $prev = $alpha * $value + (1 - $alpha) * $prev;
    $smoothed[] = round($prev, 2);
}
print_r($smoothed);
Array
(
    [0] => 10
    [1] => 10.6
    [2] => 11.92
    [3] => 11.64
    [4] => 12.35
)

PHP exp function comments

En
Exp Calculates the exponent of e