이 글에서는 C++ STL에서 복소수(complex number)의 지수 값을 계산하는 std::exp() 함수의 동작 원리, 문법, 그리고 실제 예제까지 자세히 살펴보겠습니다.
std::exp()란 무엇인가?
std::exp()는 C++ 표준 라이브러리(STL)에 내장된 함수로, <complex> 헤더 파일에 정의되어 있습니다. 일반적으로 많이 사용하는 <cmath> 헤더의 exp() 함수가 실수의 지수 값을 구하는 것과 마찬가지로, 복소수용 exp() 함수는 입력으로 받은 복소수의 지수(exponential) 값을 계산하여 반환합니다.
즉, 오일러 공식(e^z = e^a(cos b + i·sin b), 여기서 z = a + bi)에 따라 복소수의 지수 값을 손쉽게 구할 수 있으며, 결과 역시 복소수 형태로 반환됩니다.
문법
exp(complex <T> num);
매개변수
이 함수는 다음과 같은 매개변수를 받습니다.
- num − 지수 값을 구하고자 하는 복소수입니다.
반환 값
입력된 복소수 num의 지수 값을 복소수 형태로 반환합니다.
예제 1: 실수부가 -1인 경우
입력
exp(complex<double> complexnumber(-1.0, 0.0));
출력
The result is : (-1, 0) is (0.367879, 0)
예제 코드
#include <bits/stdc++.h>
using namespace std;
int main(){
complex<double> complexnumber(-1.0, 0.0);
cout<<"The result is : " << complexnumber<< " is "<< exp(complexnumber)<< endl;
return 0;
}출력 결과
The result is : (-1, 0) is (0.367879, 0)
위 예제에서 복소수 (-1, 0)은 실수 -1과 같으므로, e^-1 ≈ 0.367879가 계산됩니다. 허수부가 0이기 때문에 결과의 허수부도 0이 됩니다.
예제 2: 허수부가 1인 경우
예제 코드
#include <bits/stdc++.h>
using namespace std;
int main(){
complex<double> complexnumber(0.0, 1.0);
cout<<"The result is : " << complexnumber<< " is "<< exp(complexnumber)<< endl;
return 0;
}출력 결과
The result is : (0, 1) is (0.540302,0.841471)
복소수 (0, 1)은 순허수 i에 해당하며, 오일러 공식에 따라 e^i = cos(1) + i·sin(1) ≈ 0.540302 + 0.841471i가 됩니다. 이처럼 std::exp()를 활용하면 삼각함수 계산 없이도 복소수의 지수 값을 간편하게 구할 수 있습니다.