Ce face math.Sinh
Funcțiile hiperbolice sunt definite prin exponențiala ex: sinh(x) = (ex − e−x)/2, cosh(x) = (ex + e−x)/2, tanh(x) = sinh(x)/cosh(x). Apar în fizică (forma unui cablu suspendat este un cosinus hiperbolic) și în rețele neuronale (tanh este o funcție de activare care dă valori între -1 și 1).
math.Asinh, math.Acosh și math.Atanh sunt inversele. Acosh cere x ≥ 1, iar Atanh cere x între -1 și 1; în afara acestor intervale rezultatul este NaN (iar Atanh(±1) este ±Inf).
Argumentul nu este un unghi, deci nu se pune problema gradelor sau radianilor.
Parametri
| Parametru | Descriere |
|---|---|
x |
Numărul de intrare. |
Ce returnează
Valoarea funcției, ca float64.
Exemple
Exemplul 1: Funcțiile hiperbolice și inversele lor
package main
import (
"fmt"
"math"
)
func main() {
x := 1.0
fmt.Printf("sinh(1) = %.4f\n", math.Sinh(x))
fmt.Printf("cosh(1) = %.4f\n", math.Cosh(x))
fmt.Printf("tanh(1) = %.4f\n", math.Tanh(x))
fmt.Printf("asinh(sinh(1)) = %.4f\n", math.Asinh(math.Sinh(x)))
fmt.Printf("acosh(cosh(1)) = %.4f\n", math.Acosh(math.Cosh(x)))
fmt.Printf("atanh(tanh(1)) = %.4f\n", math.Atanh(math.Tanh(x)))
fmt.Println(math.Acosh(0.5), math.Atanh(1))
}
Rezultat
sinh(1) = 1.1752
cosh(1) = 1.5431
tanh(1) = 0.7616
asinh(sinh(1)) = 1.0000
acosh(cosh(1)) = 1.0000
atanh(tanh(1)) = 1.0000
NaN +Inf
Exemplul 2: tanh comprimă orice număr între -1 și 1
package main
import (
"fmt"
"math"
)
func main() {
for _, x := range []float64{-10, -1, 0, 0.5, 3, 100} {
fmt.Printf("tanh(%v) = %.4f\n", x, math.Tanh(x))
}
}
Rezultat
tanh(-10) = -1.0000
tanh(-1) = -0.7616
tanh(0) = 0.0000
tanh(0.5) = 0.4621
tanh(3) = 0.9951
tanh(100) = 1.0000
Greșeli frecvente
- Confunzi
math.Sinhcumath.Sin: funcțiile hiperbolice nu sunt periodice și cresc foarte repede.
Comenzi înrudite
math.Sin: Funcțiile trigonometrice sinus, cosinus și tangentă; unghiul se dă în radiani. Sincos le dă pe primele două deodată.math.Asin: Funcțiile trigonometrice inverse: arcsinus, arccosinus, arctangentă și Atan2, care dă unghiul unui punct (x, y).math.Exp: math.Exp calculează e la puterea x, math.Exp2 calculează 2 la puterea x, iar math.Expm1 calculează e^x – 1 precis.