W3docs

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, но никогда не достигает этих значений при конечном аргументе.

Базовый пример

php— editable, runs on the server

Результат: 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() для гиперболических вычислений.

Практика

Практика
Что делает функция PHP 'tanh'?
Что делает функция PHP 'tanh'?
Was this page helpful?