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

Python NumPy로 삼각함수 역탄젠트(arctan) 구하는 방법

역탄젠트(arctan)란 무엇인가?

역탄젠트(arctan)는 다중값(multi-valued) 함수입니다. 즉, 각각의 x 값에 대해 tan(z) = x를 만족하는 z 값이 무수히 많이 존재합니다. 이러한 이유로 일반적으로는 실수부가 [-π/2, π/2] 범위에 속하는 각도 z를 반환하는 것이 표준적인 관례입니다. 역탄젠트는 atan 또는 tan⁻¹이라고도 불립니다.

실수(real-valued) 입력 데이터 타입의 경우, arctan은 항상 실수 출력을 반환합니다. 실수나 무한대로 표현할 수 없는 값이 입력되면 nan을 반환하고 유효하지 않은 부동 소수점 오류 플래그(invalid floating point error flag)를 설정합니다.

복소수(complex-valued) 입력의 경우, arctan은 복소 해석 함수(complex analytic function)로 동작하며, [1j, infj]와 [-1j, -infj]를 분지 절단(branch cuts)으로 가집니다. 전자에서는 왼쪽에서, 후자에서는 오른쪽에서 연속됩니다.

numpy.arctan() 메서드 사용법

Python Numpy에서 삼각함수 역탄젠트를 구하려면 numpy.arctan() 메서드를 사용하면 됩니다. 이 메서드는 tan의 역함수를 반환하므로, y = tan(x)라면 x = arctan(y)가 성립합니다.

각 매개변수는 다음과 같습니다.

  • 첫 번째 매개변수(array_like): 역탄젠트를 계산할 입력 배열 또는 값입니다.
  • 두 번째 매개변수(out, 선택 사항): 결과가 저장될 ndarray입니다. 제공할 경우 입력이 브로드캐스팅되는 형태(shape)와 일치해야 하며, 제공하지 않거나 None이면 새로 할당된 배열이 반환됩니다.
  • 세 번째 매개변수(where, 선택 사항): 입력에 대해 브로드캐스팅되는 조건입니다. 조건이 True인 위치에는 out 배열에 ufunc 결과가 설정되고, 그 외의 위치에서는 out 배열이 원래 값을 유지합니다.

구현 단계

먼저 필요한 라이브러리를 임포트합니다.

import numpy as np

1에 대한 역탄젠트(arctan)를 구합니다.

print("\n결과...", np.arctan(1))

-1에 대한 역탄젠트를 구합니다.

print("\n결과...", np.arctan(-1))

0에 대한 역탄젠트를 구합니다.

print("\n결과...", np.arctan(0))

0.3에 대한 역탄젠트를 구합니다.

print("\n결과...", np.arctan(0.3))

전체 예제 코드

import numpy as np

# Python Numpy에서 삼각함수 역탄젠트를 구하려면 numpy.arctan() 메서드를 사용합니다.
# 이 메서드는 tan의 역함수를 반환하므로, y = tan(x)이면 x = arctan(y)입니다.
# 튜플(키워드 인자로만 가능)은 출력 개수와 길이가 같아야 합니다.

print("삼각함수 역탄젠트 구하기...")

# 1에 대한 arctan 계산
print("\n결과...", np.arctan(1))

# -1에 대한 arctan 계산
print("\n결과...", np.arctan(-1))

# 0에 대한 arctan 계산
print("\n결과...", np.arctan(0))

# 0.3에 대한 arctan 계산
print("\n결과...", np.arctan(0.3))

실행 결과

삼각함수 역탄젠트 구하기...

결과... 0.7853981633974483

결과... -0.7853981633974483

결과... 0.0

결과... 0.2914567944778671

실행 결과를 보면 arctan(1)은 약 0.7854(즉, π/4 라디안)를 반환하고, arctan(-1)은 그 음수 값인 약 -0.7854를 반환합니다. arctan(0)은 당연히 0.0이며, arctan(0.3)은 약 0.2915 라디안입니다. 이처럼 numpy.arctan() 메서드를 활용하면 스칼라 값뿐만 아니라 배열 전체에 대해서도 한 번에 역탄젠트를 손쉽게 계산할 수 있습니다.