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

C++에서 복소수의 상용로그를 구하는 log10() 함수 사용법

이 글에서는 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() 함수는 복소 평면 전체 영역에서 안정적으로 동작하므로, 실수 범위에서는 정의되지 않는 음수나 복소수 입력에 대해서도 로그 값을 손쉽게 계산할 수 있습니다.