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

C++ STL에서 복소수의 자연로그를 계산하는 log() 함수 완벽 정리

이 글에서는 C++ STL에 포함된 log() 함수의 동작 원리, 문법, 그리고 실제 사용 예제를 살펴보겠습니다.

log() 함수란 무엇인가?

log() 함수는 C++ 표준 라이브러리(STL)에 내장된 함수로, <complex> 헤더 파일에 정의되어 있습니다. 이 함수는 복소수(complex number)에 대한 자연로그(natural logarithm) 값을 계산하여 반환합니다.

<math.h> 헤더 파일의 log() 함수와 <complex> 헤더 파일의 log() 함수의 차이점은 다음과 같습니다. 전자는 일반적인 실수 로그 값을 계산하는 반면, 후자는 복소수에 대한 복소 로그(complex logarithm)를 계산합니다.

문법(Syntax)

template<class T> complex<T> log(const complex<T>& x);

매개변수(Parameters)

이 함수는 매개변수를 하나만 받습니다. 바로 로그 값을 구하고자 하는 복소수 값입니다.

반환 값(Return Value)

입력으로 주어진 복소수 x에 대한 로그 값이 반환됩니다.

예제 1

Input: complex<double> C_number(-7.0, 1.0);
    log(C_number);
Output: log of (-7,1) is (1.95601,2.9997)
#include <bits/stdc++.h>
using namespace std;
int main() {
    complex<double> C_number(-7.0, 1.0);
    cout<<"log of "<<C_number<<" is "<<log(C_number)<< endl;
    return 0;
}

출력 결과

위 코드를 실행하면 다음과 같은 결과가 출력됩니다.

log of (-7,1) is (1.95601,2.9997)

예제 2

#include <bits/stdc++.h>
using namespace std;
int main() {
    complex<double> C_number(-4.0, -1.0);
    cout<<"log of "<< C_number<< " is "<<log(C_number);
    return 0;
}

출력 결과

위 코드를 실행하면 다음과 같은 결과가 출력됩니다.

log of (-4,-1) is (1.41661,-2.89661)

정리

C++에서 복소수의 로그를 계산할 때는 반드시 <complex> 헤더에 정의된 log() 함수를 사용해야 합니다. 일반 실수용 log() 함수와 이름은 같지만, 내부적으로 오일러 공식을 기반으로 복소 평면에서의 로그 값을 계산한다는 점이 핵심입니다. 음수나 허수부가 포함된 값에도 정상적으로 로그를 계산할 수 있어 과학 및 공학 계산에 유용하게 활용됩니다.