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

C++ 복소수 sqrt() 함수 완벽 가이드 – 구문, 매개변수, 예제 코드 총정리

이 글에서는 복소수(complex number)에 대해 sqrt() 함수가 어떻게 동작하는지 알아봅니다. sqrt()는 기본적으로 C++의 <complex> 헤더 파일에 포함되어 있는 함수로, 복소수의 제곱근(square root)을 계산하는 데 사용됩니다.

구문(Syntax)

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

매개변수(Parameter)

x − 제곱근을 구하고자 하는 복소수를 나타내는 매개변수입니다.

반환 값(Return Value)

이 함수는 전달된 복소수의 제곱근을 complex<T> 형태로 반환합니다.

입력 및 출력 예시

  • 입력 − sqrt(3, 8i)
  • 출력 − (2.4024, 1.6649)
  • 입력 − sqrt(7, 1i)
  • 출력 − (2.6524, 0.1885)

예제 코드 1

#include <iostream>
#include <complex>
using namespace std;

int main() {
    // 복소수 정의
    complex<double> x(4, 9);
    cout << "The square root of " << x << " = " << sqrt(x) << endl;
    return 0;
}

실행 결과

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

The square root of (4,9) = (2.631,1.710)

예제 코드 2

#include <iostream>
#include <complex>
using namespace std;

int main() {
    // 복소수 정의
    complex<double> x(2, 6);
    cout << "The square root of " << x << " = " << sqrt(x) << endl;
    return 0;
}

실행 결과

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

The square root of (2,6) = (2.0401,1.4704)

동작 원리 보충 설명

복소수 z = a + bi의 제곱근은 수학적으로 다음 공식으로 계산할 수 있습니다.

√z = √((|z| + a) / 2) + i · sign(b) · √((|z| − a) / 2)

여기서 |z|는 복소수의 크기(magnitude), 즉 √(a² + b²)를 의미합니다. C++ 표준 라이브러리의 sqrt() 함수는 내부적으로 이러한 수학적 원리를 기반으로 복소수의 주 제곱근(principal square root)을 반환하며, 허수부가 음수인 경우에도 올바르게 처리합니다.

마무리

C++에서 복소수의 제곱근을 구하는 것은 <complex> 헤더의 sqrt() 함수 하나면 충분합니다. 실수부와 허수부를 인자로 complex<double> 객체를 생성한 뒤 함수에 전달하기만 하면 되므로, 과학 계산이나 신호 처리 등 복소수 연산이 필요한 프로그램에서 매우 유용하게 활용할 수 있습니다.