Computer >> 컴퓨터 >  >> 프로그래밍 >> C++

C++ STL의 atanh() 함수 완벽 가이드: 역쌍곡탄젠트 계산 방법


atanh() 함수는 라디안 단위로 주어진 값의 역쌍곡탄젠트(inverse hyperbolic tangent)를 반환합니다. 이 함수는 C++ STL에 내장되어 있으며, <cmath> 헤더 파일에 정의되어 있습니다.

atanh() 함수의 구문

atanh() 함수의 구문은 다음과 같습니다.

atanh(var)

구문에서 확인할 수 있듯이, atanh() 함수는 float, double 또는 long double 타입의 매개변수 var 하나를 받습니다. 이때 매개변수의 값은 반드시 -1 이상 1 이하 범위 내에 있어야 합니다. 만약 이 범위를 벗어나면 도메인 오류(domain error)가 발생합니다. 함수는 var의 역쌍곡탄젠트 값을 반환하며, 반환값의 데이터 타입은 입력 매개변수와 동일합니다.

기본 사용 예제

다음은 C++에서 atanh() 함수를 사용하는 예제 프로그램입니다.

#include <iostream>
#include <cmath>
using namespace std;
int main() {
    double d = 0.5, ans;
    ans = atanh(d);
    cout << "atanh("<< d <<") = " << ans << endl;
    return 0;
}

출력

atanh(0.5) = 0.549306

위 프로그램에서는 먼저 변수 d를 0.5로 초기화합니다. 그런 다음 atanh() 함수를 사용하여 d의 역쌍곡탄젠트 값을 구하고 그 결과를 변수 ans에 저장합니다. 마지막으로 ans의 값을 화면에 출력합니다. 이 과정은 다음 코드 스니펫에서 확인할 수 있습니다.

double d = 0.5, ans;
ans = atanh(d);
cout << "atanh("<< d <<") = " << ans << endl;

결과를 각도( degree ) 단위로 변환하기

atanh() 함수가 반환하는 값은 기본적으로 라디안 단위입니다. 따라서 필요에 따라 이 값을 각도 단위로 변환하여 출력할 수 있습니다. 변환 공식은 '라디안 값 × 180 / π'입니다. 이를 보여주는 예제 프로그램은 다음과 같습니다.

#include <iostream>
#include <cmath>
using namespace std;
int main() {
    double d = 0.5, ans;
    ans = atanh(d);
    ans = ans*180/3.14159;
    cout << "atanh("<<d <<") = " << ans << endl;
    return 0;
}

출력

atanh(0.5) = 31.473

위 프로그램에서는 atanh() 함수를 사용하여 역쌍곡탄젠트 값을 구한 후, 여기에 180/π(약 57.2958)를 곱해 각도 단위로 변환합니다. 마지막으로 변환된 결과값을 출력합니다. 핵심 코드는 다음과 같습니다.

double d = 0.5, ans;
ans = atanh(d);
ans = ans*180/3.14159;
cout << "atanh("<< d <<") = " << ans << endl;

정리

atanh() 함수는 역쌍곡탄젠트를 계산할 때 유용하게 사용되며, 신호 처리나 통계학 등 다양한 분야에서 활용됩니다. 사용 시에는 다음 두 가지 사항에 유의해야 합니다. 첫째, 입력값이 반드시 -1과 1 사이에 있어야 한다는 점입니다. 둘째, 더 정밀한 파이(π) 값이 필요하다면 하드코딩된 3.14159 대신 <cmath>에서 제공하는 M_PI 상수를 사용하는 것이 좋습니다.