이 글에서는 C++ STL에서 제공하는 log10() 함수의 동작 원리, 문법, 그리고 실제 코드 예제를 통해 복소수의 상용로그(밑이 10인 로그)를 구하는 방법을 자세히 알아보겠습니다.
log10() 함수란?
log10() 함수는 C++ STL에 내장된 함수로, <complex> 헤더 파일에 정의되어 있습니다. 이 함수는 복소수의 상용로그 값을 계산하며, 인자로 전달된 복소수 num에 대한 밑이 10인 로그 값을 복소수 형태로 반환합니다.
수학적으로 복소수 z의 상용로그는 자연로그를 이용해 다음과 같이 정의됩니다.
log10(z) = ln(z) / ln(10)
문법
template<class T> complex<T> log10(const complex<T>& num);
매개변수
이 함수는 하나의 매개변수 num을 받습니다. num은 로그 값을 구하고자 하는 대상이 되는 복소수입니다.
반환값
전달된 복소수 num의 상용로그 값을 복소수(complex) 형태로 반환합니다.
입력 및 출력 예시
입력: complex<double> C_number(-4.0, -1.0);
Log10(C_number);
출력: log10 of (-4,-1) is (0.615224,-1.25798)예제 1: 음의 허수부를 가진 복소수
#include <bits/stdc++.h>
using namespace std;
int main() {
complex<double> C_number(-4.0, -1.0);
cout<<"log10 of "<< C_number<< " is "<<log10(C_number);
return 0;
}실행 결과
위 코드를 실행하면 다음과 같은 출력이 생성됩니다.
log10 of (-4,-1) is (0.615224,-1.25798)
예제 2: 양의 허수부를 가진 복소수
#include <bits/stdc++.h>
using namespace std;
int main() {
complex<double> C_number(-4.0, 1.0);
cout<<"log10 of "<< C_number<< " is "<<log10(C_number);
return 0;
}실행 결과
위 코드를 실행하면 다음과 같은 출력이 생성됩니다.
log10 of (-4,1) is (0.615224,1.25798)
두 예제의 결과를 비교해 보면, 실수부는 동일하지만 허수부의 부호가 입력 복소수 허수부의 부호를 따라가는 것을 확인할 수 있습니다. 이처럼 log10() 함수는 복소 평면 전체 영역에서 안정적으로 동작하므로, 실수 범위에서는 정의되지 않는 음수나 복소수 입력에 대해서도 로그 값을 손쉽게 계산할 수 있습니다.