Atanh: примеры (PHP)
atanh(float $num): floatФункция atanh() вычисляет гиперболический арктангенс (ареатангенс) числа. Она является обратной функцией к tanh(). Основная область применения — математические расчеты, связанные с гиперболическими функциями, обработкой сигналов и статистикой.
Функция принимает один обязательный параметр:
- $num (float) — число, для которого вычисляется гиперболический арктангенс. Значение должно находиться в интервале (-1, 1), исключая границы. Выход за пределы этого интервала приводит к
NAN.
Возвращаемое значение — число типа float (гиперболический арктангенс) или NAN при недопустимых входных данных.
<?php
echo atanh(0.5); // 0.54930614433405
echo atanh(0.0); // 0
echo atanh(-0.3); // -0.30951960420311
?>0.54930614433405 0 -0.30951960420311
<?php
var_dump(atanh(1)); // float(NAN)
var_dump(atanh(-1)); // float(NAN)
var_dump(atanh(1.5)); // float(NAN)
?>float(NAN) float(NAN) float(NAN)
- tanh() — вычисляет гиперболический тангенс. Обратная операция к
atanh(). - asinh() — вычисляет гиперболический арксинус.
- acosh() — вычисляет гиперболический арккосинус. Принимает значения ≥1.
- atan() — вычисляет арктангенс (тригонометрический).
Выбор функции зависит от решаемой математической задачи: atanh() применяется исключительно для гиперболических вычислений.
Atanh в Python
import math
print(math.atanh(0.5)) # 0.54930614433405490.5493061443340549
Atanh в Javascript
console.log(Math.atanh(0.5)); // 0.54930614433405490.5493061443340549
Atanh в MySQL
SELECT ATANH(0.5); -- 0.54930614433405490.5493061443340549
Синтаксис и поведение идентичны PHP, различия могут быть в точности вычислений.
<?php
$result = atanh(2);
echo is_nan($result) ? 'NAN' : $result; // NAN
?>NAN
<?php
// PHP пытается преобразовать строку в число
echo atanh('0.5'); // 0.54930614433405
// Но некорректные строки дают 0
echo atanh('abc'); // 0
?>0.54930614433405 0
Функция atanh() присутствует с PHP 4.1.0. В PHP 5.3.0 была добавлена возможность вызова с одним аргументом, ранее требовалось указание всех параметров математических функций. С PHP 8.0.0 строгая типизация может вызывать TypeError при неверном типе аргумента в строгом режиме.
<?php
function safeAtanh($x) {
if ($x <= -1 || $x >= 1) {
throw new InvalidArgumentException('Значение должно быть в интервале (-1, 1)');
}
return atanh($x);
}
try {
echo safeAtanh(0.8); // 1.0986122886681
echo safeAtanh(1.2); // Исключение
} catch (Exception $e) {
echo $e->getMessage();
}
?>1.0986122886681 Значение должно быть в интервале (-1, 1)
<?php
$x = 0.6;
$y = atanh($x);
$original = tanh($y);
echo round($original, 12); // 0.6
?>0.6
<?php
// Решение уравнения tanh(x) = 0.7
$x = atanh(0.7);
echo $x; // 0.86730052769405
// Проверка
echo tanh($x); // 0.7
?>0.86730052769405 0.7
<?php
$values = [0.1, 0.2, 0.3];
$results = array_map('atanh', $values);
print_r($results);
?>Array
(
[0] => 0.10033534773108
[1] => 0.20273255405408
[2] => 0.30951960420311
)