W3docs

tanh()

Aprenda a usar a função tanh() no PHP para calcular a tangente hiperbólica de um número.

A função PHP tanh() retorna a tangente hiperbólica de um número. Ao contrário da tan() comum, que trabalha com ângulos em um círculo, tanh() trabalha com ângulos hiperbólicos e sempre retorna um valor estritamente entre -1 e 1. Essa saída suave em forma de S e delimitada é a razão pela qual ela aparece em redes neurais, física e processamento de sinais.

Esta página aborda a sintaxe, a matemática por trás dela, seu domínio e contradomínio, casos especiais e como ela se relaciona com as demais funções hiperbólicas.

Sintaxe

tanh(float $num): float
  • $num — o valor (em radianos, interpretado como ângulo hiperbólico) cuja tangente hiperbólica você deseja.
  • Valor de retorno — a tangente hiperbólica de $num, um float no intervalo aberto (-1, 1).

A matemática: o que tanh realmente calcula

A tangente hiperbólica é a razão entre o seno hiperbólico e o cosseno hiperbólico:

tanh(x) = sinh(x) / cosh(x) = (e^x - e^-x) / (e^x + e^-x)

Essa definição confere à tanh() algumas propriedades que vale a pena lembrar:

  • tanh(0) é exatamente 0.
  • É uma função ímpar: tanh(-x) == -tanh(x).
  • À medida que x cresce, a saída se aproxima de 1; à medida que x diminui, ela se aproxima de -1 — mas nunca os alcança para nenhuma entrada finita.

Exemplo básico

php— editable, runs on the server

Isso imprime 0.46211715726001. Passamos 0.5 para tanh() e exibimos o float retornado.

Domínio e contradomínio

O domínio de tanh() é todo número real — você pode passar qualquer float sem erro. O contradomínio é o intervalo aberto (-1, 1). A tabela abaixo mostra como a saída se satura em direção às bordas:

<?php
foreach ([-INF, -2, -1, 0, 1, 2, INF] as $x) {
    printf("tanh(%s) = %s\n", $x, tanh($x));
}
?>

Saída:

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

Observe a simetria em torno de 0 (a propriedade de função ímpar) e como o resultado se estabiliza rapidamente: em x = 2 ele já ultrapassa 0.96.

Um uso prático: uma função de compressão

Como tanh() mapeia qualquer número para (-1, 1), ela é uma função de ativação comum que "comprime" uma pontuação ilimitada em um valor delimitado e com sinal:

<?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));
}
?>

Saída:

 -5.0 -> -0.9999
 -1.0 -> -0.7616
  0.0 -> +0.0000
  1.0 -> +0.7616
  5.0 -> +0.9999

Entradas positivas grandes ficam próximas de +1, entradas negativas grandes próximas de -1, e 0 permanece em 0 — exatamente o comportamento esperado de um normalizador centrado e delimitado.

Funções relacionadas

tanh() é uma das funções matemáticas hiperbólicas do PHP. Com frequência, elas são usadas em conjunto:

  • sinh() — seno hiperbólico, o numerador na fórmula acima.
  • cosh() — cosseno hiperbólico, o denominador.
  • atanh() — a inversa, arco tangente hiperbólico (recebe um valor em (-1, 1) e retorna o número original).
  • tan() — a tangente ordinária (circular), para ângulos em vez de ângulos hiperbólicos.

Conclusão

tanh() retorna a tangente hiperbólica de um número: uma função suave e ímpar cuja saída está sempre entre -1 e 1. Passe qualquer número real e obtenha um resultado delimitado que se satura em direção a ±1 para grandes magnitudes. Isso a torna ideal para normalizar valores ilimitados, e ela se combina com sinh(), cosh() e sua inversa atanh() para cálculos hiperbólicos.

Prática

Prática
O que a função 'tanh' do PHP faz?
O que a função 'tanh' do PHP faz?
Was this page helpful?