복소수를 극좌표로 변환하기
복소수 c가 주어졌을 때, 이를 극좌표 형태인 (반지름, 각도)로 변환하는 것이 목표입니다. 복소수는 일반적으로 x + yj 형태로 표현됩니다.
여기서 각 성분은 다음과 같이 정의됩니다.
반지름(radius): 복소수의 크기(magnitude)로, √(x² + y²)로 계산됩니다.
각도(angle): 양의 x축에서 시작하여 원점과 점 x + yj를 잇는 선분 사이의 반시계 방향 각도입니다.
파이썬에서는 cmath 라이브러리를 활용하면 손쉽게 구할 수 있습니다. phase() 함수로 각도를 계산하고, 복소수에 abs() 함수를 적용하면 크기 값을 반환받을 수 있습니다.
예시
입력이 c = 2+5j라면 출력은 다음과 같습니다.
(5.385164807134504, 1.1902899496825317)
해결 접근 방법
이 문제는 매우 간단하게 해결할 수 있습니다.
(|c|, phase(c))쌍을 반환합니다. 여기서|c|는 복소수의 크기,phase(c)는 cmath 라이브러리에서 제공하는 위상(각도) 값입니다.
예제 코드
아래 구현을 통해 더 잘 이해해 보겠습니다.
import cmath
def solve(c):
return (abs(c), cmath.phase(c))
c = 2+5j
print(solve(c))입력
2+5j
출력
(5.385164807134504, 1.1902899496825317)
참고: cmath.polar() 활용하기
사실 파이썬의 cmath 모듈에는 이 과정을 한 번에 처리해 주는 polar() 함수도 있습니다. cmath.polar(c)를 호출하면 크기와 각도를 튜플 형태로 바로 얻을 수 있습니다.
import cmath c = 2+5j print(cmath.polar(c)) # (5.385164807134504, 1.1902899496825317)
두 방법 모두 동일한 결과를 반환하므로, 상황에 맞게 선택하여 사용하면 됩니다.