반응형
Sine, Inverse Sine(Arcsine) 파이썬으로 계산하고 그리기
사인과 아크사인을 계산하기 위해서는 numpy 모듈이 필요하고 그래프로 그리기 위해서는 matplotlib 모듈이 필요하다. 없다면 "pip install 모듈명" 으로 설치하길 바란다.
- numpy
- matplotlib
사인 계산 및 그래프 구현 하기
코드>>
import matplotlib.pyplot as plt
import numpy as np
# x값 설정
x = np.arange(-10,10,0.1);
# y값 설정
amplitude = np.sin(x)
print("amp: ", amplitude)
# 축 이름 설정
plt.xlabel('x axis(radian)')
plt.ylabel('y axis')
# 그리드 추가
plt.grid(color = "gray", alpha=.5,linestyle='--')
plt.plot(x,amplitude,label='arc sine')
# 범례 작성
plt.legend()
plt.show()
결과>>
반응형
역사인 계산 및 그래프 구현 하기
코드>>
import matplotlib.pyplot as plt
import numpy as np
# x값 설정
# x = np.array(range(-10,10,0.01))
x = np.arange(-1,1.01,0.01);
print("x: ", x)
# y값 설정
amplitude = np.arcsin(x)
print("amp: ", amplitude)
# 축 이름 설정
plt.xlabel('x axis')
plt.ylabel('y axis(radian)')
# 그리드 추가
plt.grid(color = "gray", alpha=.5,linestyle='--')
plt.plot(x,amplitude,label='arc sine')
# 범례 작성
plt.legend()
plt.show()
결과>>
c:\Users\forgo\Documents\python_ex\test03.py:11: RuntimeWarning: invalid value encountered in arcsin
amplitude = np.arcsin(x)
amp: [-1.57079633e+00 -1.42925685e+00 -1.37046148e+00 -1.32523081e+00
-1.28700222e+00 -1.25323590e+00 -1.22263031e+00 -1.19441284e+00
-1.16808049e+00 -1.14328406e+00 -1.11976951e+00 -1.09734517e+00
-1.07586220e+00 -1.05520232e+00 -1.03526967e+00 -1.01598529e+00
-9.97283222e-01 -9.79107684e-01 -9.61411019e-01 -9.44152115e-01
-9.27295218e-01 -9.10808997e-01 -8.94665817e-01 -8.78841152e-01
-8.63313115e-01 -8.48062079e-01 -8.33070358e-01 -8.18321951e-01
-8.03802319e-01 -7.89498209e-01 -7.75397497e-01 -7.61489053e-01
-7.47762635e-01 -7.34208787e-01 -7.20818761e-01 -7.07584437e-01
-6.94498266e-01 -6.81553212e-01 -6.68742703e-01 -6.56060591e-01
-6.43501109e-01 -6.31058841e-01 -6.18728691e-01 -6.06505855e-01
-5.94385800e-01 -5.82364238e-01 -5.70437109e-01 -5.58600565e-01
-5.46850951e-01 -5.35184790e-01 -5.23598776e-01 -5.12089753e-01
-5.00654712e-01 -4.89290778e-01 -4.77995199e-01 -4.66765339e-01
-4.55598673e-01 -4.44492777e-01 -4.33445320e-01 -4.22454062e-01
-4.11516846e-01 -4.00631593e-01 -3.89796296e-01 -3.79009021e-01
-3.68267893e-01 -3.57571104e-01 -3.46916898e-01 -3.36303575e-01
-3.25729487e-01 -3.15193032e-01 -3.04692654e-01 -2.94226838e-01
-2.83794109e-01 -2.73393031e-01 -2.63022203e-01 -2.52680255e-01
-2.42365851e-01 -2.32077683e-01 -2.21814470e-01 -2.11574960e-01
-2.01357921e-01 -1.91162147e-01 -1.80986451e-01 -1.70829669e-01
-1.60690653e-01 -1.50568273e-01 -1.40461415e-01 -1.30368980e-01
-1.20289882e-01 -1.10223050e-01 -1.00167421e-01 -9.01219450e-02
-8.00855800e-02 -7.00572931e-02 -6.00360584e-02 -5.00208568e-02
-4.00106744e-02 -3.00045018e-02 -2.00013336e-02 -1.00001667e-02
8.88178420e-16 1.00001667e-02 2.00013336e-02 3.00045018e-02
4.00106744e-02 5.00208568e-02 6.00360584e-02 7.00572931e-02
8.00855800e-02 9.01219450e-02 1.00167421e-01 1.10223050e-01
1.20289882e-01 1.30368980e-01 1.40461415e-01 1.50568273e-01
1.60690653e-01 1.70829669e-01 1.80986451e-01 1.91162147e-01
2.01357921e-01 2.11574960e-01 2.21814470e-01 2.32077683e-01
2.42365851e-01 2.52680255e-01 2.63022203e-01 2.73393031e-01
2.83794109e-01 2.94226838e-01 3.04692654e-01 3.15193032e-01
3.25729487e-01 3.36303575e-01 3.46916898e-01 3.57571104e-01
3.68267893e-01 3.79009021e-01 3.89796296e-01 4.00631593e-01
4.11516846e-01 4.22454062e-01 4.33445320e-01 4.44492777e-01
4.55598673e-01 4.66765339e-01 4.77995199e-01 4.89290778e-01
5.00654712e-01 5.12089753e-01 5.23598776e-01 5.35184790e-01
5.46850951e-01 5.58600565e-01 5.70437109e-01 5.82364238e-01
5.94385800e-01 6.06505855e-01 6.18728691e-01 6.31058841e-01
6.43501109e-01 6.56060591e-01 6.68742703e-01 6.81553212e-01
6.94498266e-01 7.07584437e-01 7.20818761e-01 7.34208787e-01
7.47762635e-01 7.61489053e-01 7.75397497e-01 7.89498209e-01
8.03802319e-01 8.18321951e-01 8.33070358e-01 8.48062079e-01
8.63313115e-01 8.78841152e-01 8.94665817e-01 9.10808997e-01
9.27295218e-01 9.44152115e-01 9.61411019e-01 9.79107684e-01
9.97283222e-01 1.01598529e+00 1.03526967e+00 1.05520232e+00
1.07586220e+00 1.09734517e+00 1.11976951e+00 1.14328406e+00
1.16808049e+00 1.19441284e+00 1.22263031e+00 1.25323590e+00
1.28700222e+00 1.32523081e+00 1.37046148e+00 1.42925685e+00
nan]
주석>>
사인파형에서 x 축은 radian 값을 가졌고 아크사인파형에서 y축 값이 radian 값을 가진다. 이는 sine과 inverse sine의 차이다.
참고로 라다안 값 3.14 = pi 이다. 아크사인에서 x값이 -1일 때 -1.57 radian 이고 이는 pi/2 이다.
그리고 1일때는 값이 nan으로 나오지 않았는데 arrange 값을 1.000000 이런식으로 표기하면서 오류가 생긴 듯하다. 그냥 np.arcsin(1) 을 넣으면 1.57이 나온다.
그리고 참고로 x 값을 구할 때 아래 와같이 range로 가져오면 정수값을 가져오기때문에 아래와 같은 에러문이 발생한다.
x = np.array(range(-10,10,0.01))
에러발생>>
Traceback (most recent call last):
File "c:\Users\forgo\Documents\python_ex\rpa_basic\test04.py", line 6, in <module>
x = np.array(range(-10,10,0.01))
TypeError: 'float' object cannot be interpreted as an integer
코사인, 아크코사인, 탄잰트, 아크탄젠트 계산 및 그래프 그리기
앞서 코드에서 아래 코드만 변경하면 된다.
amplitude = np.cos(x)
변경할 코드는 아래와 같다.
amplitude = np.cos(x)
amplitude = np.arccos(x)
amplitude = np.tan(x)
amplitude = np.arctan(x)
반응형
'파이썬(Python)' 카테고리의 다른 글
[주파수] Octave 계산 방법(Calculation), 파이썬으로 구현하기 (0) | 2022.03.24 |
---|---|
log함수란? 파이썬으로 계산, 그래프 그리기 (예제로 이해) (2) | 2021.10.07 |
파이썬 방정식(함수) 그래프 그리기 (0) | 2021.10.05 |
파이썬 Excel 파일 읽기, 값 변경(덮어쓰기) (예제로 이해하기) (0) | 2021.10.04 |
파이썬 Excel 파일 생성, 쓰기, 저장하기 (예제로 이해하기) (0) | 2021.10.03 |