tanh()
Функция tanh() в PHP вычисляет гиперболический тангенс числа и возвращает значение в интервале от -1 до 1.
Функция PHP tanh() возвращает гиперболический тангенс числа. В отличие от обычного tan(), который работает с углами на окружности, tanh() работает с гиперболическими углами и всегда возвращает значение строго между -1 и 1. Именно это ограниченное, плавное S-образное поведение объясняет применение функции в нейронных сетях, физике и обработке сигналов.
На этой странице рассматриваются синтаксис, математическая основа, область определения и значений, граничные случаи, а также связь с другими гиперболическими функциями.
Синтаксис
tanh(float $num): float$num— значение (в радианах, интерпретируемое как гиперболический угол), гиперболический тангенс которого нужно вычислить.- Возвращаемое значение — гиперболический тангенс
$num, число с плавающей точкой в открытом интервале(-1, 1).
Математика: что именно вычисляет tanh
Гиперболический тангенс — это отношение гиперболического синуса к гиперболическому косинусу:
tanh(x) = sinh(x) / cosh(x) = (e^x - e^-x) / (e^x + e^-x)Это определение даёт tanh() ряд важных свойств:
tanh(0)точно равно0.- Это нечётная функция:
tanh(-x) == -tanh(x). - При росте
xрезультат стремится к1; при уменьшении — к-1, но никогда не достигает этих значений при конечном аргументе.
Базовый пример
Результат: 0.46211715726001. Мы передаём 0.5 в tanh() и выводим возвращённое число с плавающей точкой.
Область определения и значений
Область определения tanh() — все вещественные числа: можно передать любое значение типа float без ошибок. Область значений — открытый интервал (-1, 1). Таблица ниже показывает, как результат насыщается на краях:
<?php
foreach ([-INF, -2, -1, 0, 1, 2, INF] as $x) {
printf("tanh(%s) = %s\n", $x, tanh($x));
}
?>Вывод:
tanh(-INF) = -1
tanh(-2) = -0.96402758007582
tanh(-1) = -0.76159415595576
tanh(0) = 0
tanh(1) = 0.76159415595576
tanh(2) = 0.96402758007582
tanh(INF) = 1Обратите внимание на симметрию относительно 0 (свойство нечётной функции) и на то, как быстро результат выходит на плато: при x = 2 он уже превышает 0.96.
Практическое применение: функция сжатия
Поскольку tanh() отображает любое число в интервал (-1, 1), она является распространённой функцией активации, которая «сжимает» неограниченную оценку в ограниченное знаковое значение:
<?php
// Map raw scores to a value between -1 and 1
$scores = [-5.0, -1.0, 0.0, 1.0, 5.0];
foreach ($scores as $score) {
printf("%5.1f -> %+.4f\n", $score, tanh($score));
}
?>Вывод:
-5.0 -> -0.9999
-1.0 -> -0.7616
0.0 -> +0.0000
1.0 -> +0.7616
5.0 -> +0.9999Большие положительные значения оказываются близко к +1, большие отрицательные — к -1, а 0 остаётся равным 0 — именно такое поведение ожидается от центрированного ограниченного нормализатора.
Связанные функции
tanh() — одна из гиперболических математических функций PHP. Их часто используют вместе:
sinh()— гиперболический синус, числитель в приведённой формуле.cosh()— гиперболический косинус, знаменатель.atanh()— обратная функция, гиперболический арктангенс (принимает значение из(-1, 1)и возвращает исходное число).tan()— обычный (тригонометрический) тангенс для углов, а не гиперболических углов.
Заключение
tanh() возвращает гиперболический тангенс числа: плавную нечётную функцию, значения которой всегда находятся между -1 и 1. Передайте любое вещественное число — получите ограниченный результат, стремящийся к ±1 при больших по модулю аргументах. Это делает функцию естественным инструментом для нормализации неограниченных значений. Она используется в паре с sinh(), cosh() и обратной функцией atanh() для гиперболических вычислений.