삼각함수인 sin() / cos() / tan() 에 대해 다음과 역삼각함수로 표현하는 파이썬 코드를 짜보았다.
코드>
import matplotlib.pyplot as plt
import numpy as np
x = np.linspace(-np.pi, np.pi, 200)
fig, axes = plt.subplots(3,2, figsize=(8,12)) #2행 2열
axes[0][0].plot(x, np.sin(x))
axes[0][0].set_title('Sine_func()')
axes[0][1].plot(x, np.arcsin(x))
axes[0][1].set_title('ArcSine_func()')
axes[1][0].plot(x, np.cos(x))
axes[1][0].set_title('Cosine_func()')
axes[1][1].plot(x, np.arccos(x))
axes[1][1].set_title('ArcCosine_func()')
axes[2][0].plot(x, np.tan(x))
axes[2][0].set_title('Tangent_func()')
axes[2][1].plot(x, np.arctan(x))
axes[2][1].set_title('ArcTangent_func()')
plt.show()
결과>
이때 인터프리터가 안된거는 아니지만 다음과 같은 에러가 함께 출력이 되었다.
자세히 보면,
RuntimeWarning: invalid value encountered in arcsin axes[1][1].plot(x, np.arcsin(x))
RuntimeWarning: invalid value encountered in arccos axes[1][1].plot(x, np.arccos(x))
즉 두 함수에 대해서 문제가 생긴건데, 설정한 값에 대해서 유효하지 않다는 뜻이다.
이때 설정한 값중에 의심을 해보았을때, 정의역을 (- Π에서 Π까지)로 두어서 문제가 된것이다.
'아크사인'과 '아크코사인'은 정의 자체가 정의역을 -1에서 +1사이로 두기 때문이다.
따라서 별도의 정의역을 설정해줄 필요가 있다.
따라서 다음과 같이 별도의 적의역을 설정해주었다.
x2 = np.linspace(-1, 1, 200)
axes[0][1].plot(x2, np.arcsin(x2))
axes[0][1].set_title('ArcSine_func()')
x2 = np.linspace(-1, 1, 200)
axes[1][1].plot(x2, np.arccos(x2))
axes[1][1].set_title('ArcCosine_func()')
이때 전체코드와 그 출력결과는 다음과 같다.
코드>
import matplotlib.pyplot as plt
import numpy as np
x = np.linspace(-np.pi, np.pi, 200)
x2 = np.linspace(-1, 1, 200)
fig, axes = plt.subplots(3,2, figsize=(8,12)) #2행 2열
axes[0][0].plot(x, np.sin(x))
axes[0][0].set_title('Sine_func()')
axes[0][1].plot(x2, np.arcsin(x2))
axes[0][1].set_title('ArcSine_func()')
axes[1][0].plot(x, np.cos(x))
axes[1][0].set_title('Cosine_func()')
axes[1][1].plot(x2, np.arccos(x2))
axes[1][1].set_title('ArcCosine_func()')
axes[2][0].plot(x, np.tan(x))
axes[2][0].set_title('Tangent_func()')
axes[2][1].plot(x, np.arctan(x))
axes[2][1].set_title('ArcTangent_func()')
plt.show()
결과>
댓글