Computer >> 컴퓨터 >  >> 프로그래밍 >> Python

파이썬으로 복소수를 극좌표 값으로 변환하는 프로그램

복소수를 극좌표로 변환하기

복소수 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)

두 방법 모두 동일한 결과를 반환하므로, 상황에 맞게 선택하여 사용하면 됩니다.