파이썬 complex() 사용법 3가지 및 주의사항

파이썬 complex() 내장 함수를 사용하면 복소수를 쉽게 다룰 수 있습니다. 파이썬에서 수학적인 연산을 다루다 보면 복소수를 사용해야 할 때가 있습니다. 복소수는 실수(real number)와 허수(imaginary number)로 이루어진 수를 말하며, 이를 통해 다양한 수학적 문제를 해결할 수 있습니다. 이 글에서는 complex() 함수의 기본적인 사용법부터 다양한 활용 방법을 설명하겠습니다.

complex() 함수란?

complex() 함수는 파이썬에서 복소수를 생성하는 데 사용됩니다. 복소수는 실수부(real part)와 허수부(imaginary part)로 구성되며, 허수는 주로 “i”로 표현되지만, 파이썬에서는 “j” 또는 “J”를 사용합니다. 복소수는 다음과 같은 형식으로 나타낼 수 있습니다:

Plaintext
a + bj

여기서 a는 실수부, b는 허수부를 나타냅니다.

기본적인 사용법

complex() 함수는 두 개의 매개변수를 가질 수 있습니다. 첫 번째 매개변수는 실수부, 두 번째 매개변수는 허수부입니다. 예를 들어, 실수 2와 허수 3을 갖는 복소수를 생성하려면 다음과 같이 작성할 수 있습니다.

Python
z = complex(2, 3)
print(z)
그림 1. 파이썬 complex(): 복소수 생성하기
그림 1. 파이썬 complex(): 복소수 생성하기

만약 매개변수를 하나만 넣으면, 그것은 실수부로 간주되며 허수부는 자동으로 0으로 설정됩니다.

Python
z = complex(4)
print(z)
그림 2. 파이썬 complex(): 허수부에 값을 넣지 않는 경우
그림 2. 파이썬 complex(): 허수부에 값을 넣지 않는 경우

또한 문자열을 이용해 복소수를 생성할 수도 있습니다.

Python
z = complex("2+3j")
print(z)  # output: (2+3j)

실수부와 허수부 분리

복소수에서 실수부와 허수부를 각각 분리하는 방법은 매우 간단합니다. 복소수 객체는 realimag라는 속성을 통해 실수부와 허수부에 접근할 수 있습니다.

Python
z = complex(5, 8)
print("실수부:", z.real)  # 출력: 실수부: 5.0
print("허수부:", z.imag)  # 출력: 허수부: 8.0

이렇게 실수와 허수부를 별도로 확인할 수 있기 때문에, 복소수를 보다 효과적으로 다룰 수 있습니다.

파이썬에서 복소수 활용법

복소수 연산

복소수는 일반적인 수학 연산을 모두 지원합니다. 예를 들어, 덧셈, 뺄셈, 곱셈, 나눗셈 등의 연산을 복소수끼리 수행할 수 있습니다.

Python
z1 = complex(5, 8)
z2 = complex(3, 2)

print(z1 + z2)
print(z1 - z2)
print(z1 * z2)
print(z1 / z2)

이처럼 복소수끼리의 기본적인 수학 연산은 파이썬에서 매우 쉽게 처리할 수 있습니다.

그림 3. 파이썬 complex(): 복소수의 사칙 연산
그림 3. 파이썬 complex(): 복소수의 사칙 연산

복소수의 절댓값 구하기

복소수의 절댓값은 abs() 함수를 통해 구할 수 있습니다. 복소수의 절댓값은 원점으로부터 복소수까지의 거리를 의미하며, 이를 계산하는 공식은 다음과 같습니다:

Plaintext
|z| = sqrt(a^2 + b^2)

여기서 a는 실수부, b는 허수부입니다. 파이썬에서 abs() 내장 함수를 사용해서 복소수의 절댓값을 구하는 방법은 다음과 같습니다:

Python
z = complex(3, 4)
print(abs(z))

이는 피타고라스 정리를 이용해 구한 결과와 동일합니다.

그림 4. 파이썬 complex(): abs()로 복소수의 절댓값 구하기
그림 4. 파이썬 complex(): abs()로 복소수의 절댓값 구하기

보다 복잡한 활용 예시: 좌표 회전

다음과 같이 좌표 회전에도 사용할 수 있습니다. (x, y) 값을 갖는 좌표를 k도 만큼 회전시키기 원한다면 다음과 같은 코드를 사용할 수 있습니다.

Python
import cmath
import math

def rotate_point(x, y, k):
    z = complex(x, y)
    theta = math.radians(k)
    rotated_z = z * cmath.exp(complex(0, theta))
    return round(rotated_z.real, 10), round(rotated_z.imag, 10)

x, y = 1, 0
k = 45
rotated_x, rotated_y = rotate_point(x, y, k)
print(f"rotated point: ({rotated_x}, {rotated_y})")

(1, 0)의 좌표를 45도만큼 회전한 결과는 다음과 같이 약 (0.707, 0.707)인 것을 확인할 수 있습니다.

그림 5. 파이썬 complex(): 좌표 회전에 활용
그림 5. 파이썬 complex(): 좌표 회전에 활용

뿐만 아니라 복소수는 전기 공학이나 신호 처리 분야에서 매우 유용하게 사용됩니다. 전압, 전류, 임피던스 등의 전기적 특성을 복소수로 나타내어 쉽게 계산할 수 있습니다.

주의사항: 실수와 허수의 타입

complex() 함수에 입력되는 실수부와 허수부는 정수형이나 실수형만 가능합니다. 만약 다른 데이터 타입을 입력하면 오류가 발생할 수 있습니다.

Python
complex("2", 3)
complex(2, "3")

라인 1의 경우에는 “TypeError: complex() can’t take second arg if first is a string”이라고 첫 번째 인자를 문자열로 하지 말 것을 알려줍니다. 라인 2의 경우에는 “TypeError: complex() second arg can’t be a string”이라고 마찬가지로 두 번째 인자로 문자열을 사용할 수 없음을 알려줍니다.

그림 5. 파이썬 complex(): 실수부와 허수부를 각각 적을 때 문자열을 사용할 수 없음
그림 5. 파이썬 complex(): 실수부와 허수부를 각각 적을 때 문자열을 사용할 수 없음

정리

파이썬의 complex() 함수는 복소수를 쉽게 생성하고 다룰 수 있도록 돕는 강력한 도구입니다. 실수부와 허수부를 각각 나눠 사용할 수 있으며, 복소수끼리의 수학적 연산도 가능합니다. 또한 전기 공학과 같은 특정 분야에서는 복소수가 필수적인 개념이므로, 이를 잘 활용하면 복잡한 문제도 손쉽게 해결할 수 있습니다.

복소수를 다룰 때는 complex() 함수의 입력 형식과 문자열 입력 시의 주의사항을 명심해야 합니다. 이제 여러분도 파이썬에서 복소수를 자유롭게 사용하며 더 다양한 문제를 해결할 수 있을 것입니다.

참고자료

관련 포스트

Leave a Comment