[Python] 파이썬 numpy 역삼각함수 계산 - arcsin, arccos, arctan
안녕하세요! 나비입니다 🦋
지난 포스팅에서는 파이썬 numpy 라이브러리를 이용하여 sin, cos, tan 3가지 삼각함수를 계산하는 방법에 대해 소개드렸는데요, 이번에는 역삼각함수 arcsin, arccos, arctan를 파이썬에서 적용하는 방법을 설명하려 합니다.
먼저 수학에 대해서 이야기하자면, Arcsin은 sin의 역함수, arccos은 cos의 역함수, arctan는 tan의 역함수입니다.
arcsin(x) 그래프
Arcsin 함수의 경우, 일대일대응 조건을 충족하기 위해 sin 함수의 x값을 -pi/2에서 pi/2로 제한한 상태에서 역함수를 취합니다. 따라서 arcsin의 정의역은 -1 이상 +1 미만이고, 치역은 -pi/2에서 pi/2까지입니다.
arccos(x) 그래프
arccos 함수의 경우에도 마찬가지로, 원함수 cos의 정의역을 0에서 pi까지로 제한한 후 역함수를 취합니다. 따라서 arccos의 정의역은 -1 이상 1 이하이고, 치역은 0 이상 pi 이하입니다. 정의역을 0에서 pi까지로 제한한 cos 그래프와 y=x 대칭이라는 점도 쉽게 확인할 수 있을 것입니다!
arctan(x) 그래프
tan 원함수의 정의역을 -pi/2 에서 pi/2 까지로 제한하여 arctan 함수를 구하면, 정의역은 실수 전체가 되고 치역이 -pi/2 이상, pi/2 이하로 제한됩니다. y = pi/2, y = -pi/2는 arctan 그래프의 점근선이에요!
이제 세 가지 역삼각함수를 파이썬 numpy 코드로 구현해볼게요!
참고로 numpy에서의 메소드 이름도 arcsin, arccos, arctan라는 함수 이름을 그대로 가져가고요, 입력값으로 숫자와 배열(ndarray) 모두 가능합니다. 숫자로 입력한 경우 float 자료형으로 출력하고, ndarray를 입력한 경우에는 똑같이 ndarray로 출력해줍니다.
np.arcsin
import numpy as np
a = np.arcsin(np.pi/2)
A = np.arcsin(np.array([np.pi/2, -np.pi/2])
print(a)
print(A)
1.5707963267948966
[1.5707963267948966, -1.5707963267948966]
np.arccos
import numpy as np
a = np.arccos(1)
A = np.arccos(np.array([1, -1]))
print(a)
print(A)
0.0
[0.0, 3.141592653589793]
np.arctan
import numpy as np
a = np.arctan(0)
A = np.arctan(np.array([0, 1]))
print(a)
print(A)
0.0
[0.0, 0.7853981633974483]
위와 같이, pi라는 무리수로 인해 소수점 뒤가 길어지는 것을 확인할 수 있습니다. (3.14~~는 pi이고, 1.57~~은 pi/2이며, 0.78~~은 pi/4입니다.)
네, 여기까지, 파이썬에서 numpy 라이브러리를 이용하여 역삼각함수를 계산하는 메소드 3가지를 소개드렸습니다.
긴 글 읽어주셔서 감사드려요! ✨✨