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

Python에서 삼각함수 역코사인(arccos) 구하는 방법

역코사인(arccos)은 다중값 함수(multivalued function)입니다. 즉, 각각의 x 값에 대해 cos(z) = x를 만족하는 z는 무수히 많이 존재합니다. 이에 대한 관례상 실수부가 [0, π] 범위에 속하는 각도 z를 반환합니다.

실수(real-valued) 입력 데이터 타입의 경우 arccos는 항상 실수 출력을 반환하며, 실수 또는 무한대로 표현할 수 없는 값에 대해서는 nan을 반환하고 부동 소수점 오류 플래그(invalid floating point error flag)를 설정합니다. 복소수(complex-valued) 입력의 경우 arccos는 [-∞, -1]과 [1, ∞]에 절단면(branch cut)을 가지는 복소 해석 함수로, 전자에는 위쪽에서, 후자에는 아래쪽에서 연속입니다. 역코사인은 acos 또는 cos⁻¹로도 알려져 있습니다.

numpy.arccos() 메서드란?

Python Numpy에서 삼각함수 역코사인을 구하려면 numpy.arccos() 메서드를 사용합니다. 이 메서드는 주어진 x 좌표에서 단위 원(unit circle)과 교차하는 각도를 라디안(radian) 단위의 [0, π] 범위로 반환하며, 입력이 스칼라라면 결과 역시 스칼라로 반환됩니다.

매개변수 설명

첫 번째 매개변수(x): 단위 원 위의 x 좌표입니다. 실수 인수에 대한 정의역(domain)은 [-1, 1]입니다.

두 번째 매개변수(out, 선택 사항): 결과가 저장될 ndarray 위치입니다. 제공할 경우 입력이 브로드캐스팅(broadcasting)되는 형태(shape)와 일치해야 하며, 제공하지 않거나 None으로 지정하면 새로 할당된 배열이 반환됩니다. 튜플(tuple)은 출력 개수와 동일한 길이를 가져야 합니다.

세 번째 매개변수(where, 선택 사항): 조건(condition)이 입력 전체에 브로드캐스팅됩니다. 조건이 True인 위치에서는 out 배열이 ufunc 결과 값으로 설정되고, 그 외의 위치에서는 out 배열이 원래 값을 유지합니다.

구현 단계

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

import numpy as np

삼각함수 역코사인을 구해 보겠습니다. 먼저 1에 대한 arccos 값입니다.

print("\nResult...",np.arccos(1))

-1에 대한 arccos 값입니다.

print("\nResult...",np.arccos(-1))

0에 대한 arccos 값입니다.

print("\nResult...",np.arccos(0))

0.3에 대한 arccos 값입니다.

print("\nResult...",np.arccos(0.3))

전체 예제 코드

import numpy as np

# Python Numpy에서 삼각함수 역코사인을 구하려면 numpy.arccos() 메서드를 사용합니다.
# 이 메서드는 주어진 x 좌표에서 단위 원과 교차하는 각도를 라디안 단위 [0, pi]로 반환합니다.
# 입력이 스칼라인 경우 결과도 스칼라로 반환됩니다.

print("Get the Trigonometric inverse cosine...")

# 1에 대한 arccos 계산
print("\nResult...",np.arccos(1))

# -1에 대한 arccos 계산
print("\nResult...",np.arccos(-1))

# 0에 대한 arccos 계산
print("\nResult...",np.arccos(0))

# 0.3에 대한 arccos 계산
print("\nResult...",np.arccos(0.3))

실행 결과

Get the Trigonometric inverse cosine...

Result... 0.0

Result... 3.141592653589793

Result... 1.5707963267948966

Result... 1.2661036727794992

위 실행 결과에서 확인할 수 있듯이, arccos(1)은 0.0, arccos(-1)은 π(약 3.14159), arccos(0)은 π/2(약 1.5708), arccos(0.3)은 약 1.2661을 반환합니다. 모든 결과가 [0, π] 범위 내에 있는 것을 알 수 있습니다.