tanh() 함수는 라디안(radian) 단위로 주어진 값의 쌍곡선 탄젠트(hyperbolic tangent)를 반환하는 C++ STL 내장 함수입니다. 이 함수는 <cmath> 헤더 파일에 정의되어 있으며, 신경망의 활성화 함수 등 다양한 수학·공학 계산에서 폭넓게 활용됩니다.
함수 문법
tanh(var)
문법에서 확인할 수 있듯이 tanh() 함수는 float, double 또는 long double 타입의 매개변수 var를 하나 받아들이며, 해당 값의 쌍곡선 탄젠트를 반환합니다. 참고로 반환값은 항상 -1부터 1 사이의 범위를 가집니다.
다음은 C++에서 tanh() 함수를 실제로 사용하는 방법을 보여주는 예제 프로그램입니다.
예제 1: 기본 사용법
#include <iostream>
#include <cmath>
using namespace std;
int main() {
double d = 5, ans;
ans = tanh(d);
cout << "tanh("<< d <<") = " << ans << endl;
return 0;
}
출력 결과
tanh(5) = 0.999909
위 프로그램에서는 먼저 변수 d를 초기화합니다. 이후 tanh() 함수를 호출하여 d의 쌍곡선 탄젠트를 계산하고, 그 결과를 변수 ans에 저장합니다. 마지막으로 ans의 값을 화면에 출력합니다. 이 과정은 아래 코드 조각에서 확인할 수 있습니다.
double d = 5, ans;
ans = tanh(d);
cout << "tanh("<< d <<") = " << ans << endl;
tanh() 함수는 라디안 단위의 값을 기준으로 동작하기 때문에, 각도가 '도(degree)' 단위로 주어지는 경우에는 함수를 호출하기 전에 반드시 라디안으로 변환해야 합니다. 이를 보여주는 예제는 다음과 같습니다.
예제 2: 도(Degree) 단위를 라디안으로 변환
#include <iostream>
#include <cmath>
using namespace std;
int main() {
double degree = 60, ans;
degree = degree * 3.14159/180;
ans = tanh(degree);
cout << "tanh("<<degree<<") = " << ans <<endl;
return 0;
}
출력 결과
tanh(1.0472) = 0.780714
위 프로그램에서는 입력값이 '도' 단위로 주어집니다. 따라서 먼저 60도를 라디안으로 변환한 뒤(60 × π ÷ 180 ≒ 1.0472), 변환된 값에 대해 tanh() 함수를 적용해 쌍곡선 탄젠트를 구합니다. 마지막으로 결과를 출력하면 프로그램이 종료됩니다. 핵심 로직은 아래 코드와 같습니다.
double degree = 60, ans;
degree = degree * 3.14159/180;
ans = tanh(degree);
cout << "tanh("<<degree<<") = " << ans <<endl;