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

Python NumPy로 삼각함수 역사인(arcsin) 구하기


arcsin(역사인)은 다중값 함수(multivalued function)입니다. 즉, 각 x값에 대해 sin(z) = x를 만족하는 z는 무수히 많습니다. NumPy의 관례상 실수부가 [-π/2, π/2] 범위에 속하는 각도 z를 반환합니다. 실수형 입력 데이터 타입의 경우 arcsin은 항상 실수 결과를 반환합니다. 실수 또는 무한대로 표현할 수 없는 값에 대해서는 nan을 반환하고 부동 소수점 유효성 오류 플래그(invalid floating point error flag)를 설정합니다. 복소수 입력의 경우 arcsin은 복소 해석 함수(complex analytic function)로, 관례상 [-inf, -1]과 [1, inf]에 분지 절단(branch cuts)을 가지며, 전자 구간에서는 위쪽부터, 후자 구간에서는 아래쪽부터 연속입니다. 역사인은 asin 또는 sin-1로도 알려져 있습니다.

삼각함수 역사인을 구하려면 Python Numpy에서 numpy.arcsin() 메서드를 사용하면 됩니다. 이 메서드는 첫 번째 매개변수 x의 각 요소에 대한 역사인 값을 반환하며, x가 스칼라라면 결과 역시 스칼라입니다. 첫 번째 매개변수 x는 단위원(unit circle) 상의 y 좌표를 의미합니다. 두 번째와 세 번째 매개변수는 선택 사항(optional)입니다.

두 번째 매개변수는 결과가 저장될 위치를 나타내는 ndarray입니다. 이 값을 제공하면 입력들이 브로드캐스팅되는 형태(shape)여야 하며, 제공하지 않거나 None으로 지정하면 새로 할당된 배열이 반환됩니다. 튜플(키워드 인수로만 사용 가능)을 전달할 경우 길이가 출력 수와 같아야 합니다. 세 번째 매개변수는 입력 전체에 브로드캐스팅되는 조건(condition)으로, 조건이 True인 위치에서만 out 배열이 ufunc 결과로 설정되고, 그 외 위치에서는 out 배열이 기존 값을 유지합니다.

단계별 진행 방법

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

import numpy as np

np.arcsin()을 사용하여 삼각함수 역사인을 구합니다. π/2에 해당하는 값(1)에 대한 arcsin 계산:

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

-π/2에 해당하는 값(-1)에 대한 arcsin 계산:

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

0에 대한 arcsin 계산:

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

0.3에 대한 arcsin 계산:

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

예제 코드

import numpy as np

# arcsin은 다중값 함수입니다. 각 x에 대해 sin(z) = x를 만족하는 z는 무수히 많으며,
# 관례상 실수부가 [-pi/2, pi/2] 범위에 있는 각도 z를 반환합니다.

print("삼각함수 역사인 구하기...")

# 1(pi/2에 대한 sin 값)의 arcsin 계산
print("\nResult...",np.arcsin(1))

# -1(-pi/2에 대한 sin 값)의 arcsin 계산
print("\nResult...",np.arcsin(-1))

# 0의 arcsin 계산
print("\nResult...",np.arcsin(0))

# 0.3의 arcsin 계산
print("\nResult...",np.arcsin(0.3))

출력 결과

삼각함수 역사인 구하기...

Result... 1.5707963267948966

Result... -1.5707963267948966

Result... 0.0

Result... 0.3046926540153975