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

파이썬 NumPy emath.sqrt()로 복소수 입력의 제곱근 계산하기

입력값의 제곱근을 계산할 때 입력이 음수라면 어떻게 될까요? 일반적인 np.sqrt() 함수는 이 경우 nan을 반환하지만, 파이썬 NumPy의 emath.sqrt() 메서드를 사용하면 자동으로 복소수 형태의 결과를 얻을 수 있습니다.

emath.sqrt(x) 메서드는 입력값 x의 제곱근을 반환합니다. x가 스칼라라면 스칼라를, 배열이라면 배열을 결과로 돌려줍니다. 특히 음수 요소가 포함된 입력에 대해서는 복소수 값을 반환한다는 점이 핵심입니다.

단계별 진행 과정

1단계: 필요한 라이브러리 임포트

먼저 NumPy 라이브러리를 가져옵니다.

import numpy as np

2단계: complex() 메서드로 복소수 입력 생성

complex() 메서드를 사용해 음수 실수부를 가진 복소수를 명시적으로 만듭니다.

a = complex(-9.0, 0.0)

3단계: 입력값 출력

생성된 복소수 값을 화면에 출력해 확인합니다.

print("복소수 값 출력...\n", a)

4단계: emath.sqrt()로 제곱근 계산

NumPy의 emath.sqrt() 메서드를 호출하여 입력값의 제곱근을 구합니다.

print("\n결과...\n", np.emath.sqrt(a))

전체 예제 코드

import numpy as np

# complex() 메서드를 사용해 복소수 명시적으로 생성
a = complex(-9.0, 0.0)

# 복소수 값 출력
print("복소수 값 출력...\n", a)

# emath.sqrt() 메서드로 입력값의 제곱근 계산
# 스칼라 입력에는 스칼라를, 배열 입력에는 배열을 반환합니다.
print("\n결과...\n", np.emath.sqrt(a))

실행 결과

복소수 값 출력...
(-9+0j)

결과...
3j

결과 해석

-9의 제곱근은 실수 범위에서 정의되지 않지만, emath.sqrt()는 이를 허수 단위를 활용해 3j(즉, 3i)로 계산합니다. 이는 (√9) × i = 3i이기 때문입니다. 이처럼 emath.sqrt()는 음수 입력에 대해 오류나 nan 대신 올바른 복소수 결과를 제공하므로, 부호가 확실하지 않은 수학적 연산이나 신호 처리 분야에서 매우 유용하게 활용됩니다.