C++의 polar() 함수는 극좌표 형태로 표현된 값을 실제 복소수 객체로 변환해 주는 함수입니다. 즉, 복소수의 크기(magnitude)와 위상각(phase angle)을 인자로 받아 이에 대응하는 복소수를 반환합니다.
이 함수는 C++ 표준 라이브러리의 <complex> 헤더 파일에 정의되어 있으며, 수학 및 공학 계산에서 극형식(polar form)으로 주어진 복소수를 직교좌표 형식(a + bi)으로 손쉽게 변환할 때 유용하게 사용됩니다.
polar() 함수의 동작 원리
polar() 함수는 다음 수식을 기반으로 복소수를 계산합니다.
실수부 = mag × cos(phase) 허수부 = mag × sin(phase)
따라서 크기를 반지름으로 하는 원 위에서 위상각만큼 회전한 지점의 좌표가 곧 결과 복소수가 됩니다.
문법(Syntax)
polar(mag, phase);
매개변수(Parameters) — 두 개의 값을 인자로 받습니다.
- mag: 생성할 복소수의 크기(절댓값)
- phase: 복소수의 위상각(라디안 단위)
반환값(Return value) — 크기와 위상각에 해당하는 복소수 객체를 반환합니다.
예를 들어 다음과 같이 호출하면:
polar(0.2, 0.5) -> (0.175517, 0.0958851)
사용 예제
#include <iostream>
#include <complex>
using namespace std;
int main () {
cout << "\t\tRUN 1\n";
cout << "크기 5.2, 위상각 1.6인 복소수는 ";
cout << polar(5.2, 1.6) << endl;
cout << "\t\tRUN 2\n";
cout << "크기 0.5, 위상각 0.2인 복소수는 ";
cout << polar(0.5, 0.2) << endl;
cout << "\t\tRUN 3\n";
cout << "크기 0.2, 위상각 0.5인 복소수는 ";
cout << polar(0.2, 0.5) << endl;
return 0;
}실행 결과(Output)
RUN 1 크기 5.2, 위상각 1.6인 복소수는 (-0.151838, 5.19778) RUN 2 크기 0.5, 위상각 0.2인 복소수는 (0.490033, 0.0993347) RUN 3 크기 0.2, 위상각 0.5인 복소수는 (0.175517, 0.0958851)
정리
C++의 polar() 함수는 복소수의 크기와 위상각을 받아 극형식을 직교좌표 형식의 복소수로 변환해 주는 편리한 도구입니다. 신호 처리, 전자공학, 삼각함수 기반 계산 등 복소수를 다루는 다양한 분야에서 활용할 수 있으며, <complex> 헤더만 포함하면 별도의 구현 없이 바로 사용할 수 있습니다.