-
[Python] curve_fit : data로 그래프 그리고 fitting하기Programming/Python 2022. 7. 19. 14:01
🔼그래프를 쉽게 만들어서 보기 위해 python, numpy를 사용합니다.
그래프를 보여주기 위해 pyplot도 import해줍니다.
import numpy as np import matplotlib.pyplot as plt
✅txt에 저장되어 있는 데이터를 array로 가져오기
y = np.loadtxt('trajectory.txt', delimiter = ' ',usecols=2, dtype = 'float')
delimiter : 구분자 기호(나의 경우는 띄어쓰기)
usecols : 어떤 열을 쓸 것인지
✅x축을 만들어주기(y값과 길이가 같은 array)
x = np.array(range(y.shape[0])).reshape(1,y.shape[0])
❗주의
이렇게하고 출력하면 [[ 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20]]가 나온다.
curve_fit에 그대로 넣어주면 TypeError: Improper input: N=3 must not exceed M=1 이딴 에러를 발생한다
(이거때문에 한참 고생했는데 구글링해서 발견함)
x = x[0,:]
이렇게 하고 출력하면 [ 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20] 가 됨.
✅커브피팅
from scipy.optimize import curve_fit #curve_fit을 위해 import def func(x,a,b,c): #curve_fitting에 사용할 함수 사전 정의 return a*x**3+b*x**2+c*x # 3차 함수 #return a*np.exp(-(x-b)**2/(2*c**2)) #gaussian function popt, pcov = curve_fit(func,x,y) cur_y = func(x,popt[0],popt[1],popt[2]) plt.plot(x,cur_y)
popt에 func의 a,b,c가 들어가서 cur_y로 새로운 그래프를 만들게 된다.
원래 데이터와 (초록)
curve_fit 한 그래프 (파랑)
함께 그려준 모습
참고
전산물리학:선형_회귀_분석_linear_regression_analysis [statphys] (pknu.ac.kr)
전산물리학:선형_회귀_분석_linear_regression_analysis [statphys]
선형 회귀 분석(Linear regression analysis)은 $x$와 $y$의 값을 알고 있을 때, $y = ax +b$의 꼴에서 $a$와 $b$의 값을 추측하는데 사용하는 방법이다. 데이터 포인트 하나만 가지고는 $a$와 $b$값을 추론할 수
statphys.pknu.ac.kr
기록하고 싶은 기록들 :: Python numpy 데이터피팅, 함수의 해 graph (tistory.com)
Python numpy 데이터피팅, 함수의 해 graph
◎Python - Numpy 를 사용하여 데이터 피팅 #curve_fit code (figure2) import numpy as np import matplotlib.pyplot as plt from scipy.optimize import curve_fit #최소자승법사용 def func(x, a, b, c): re..
takeardor.tistory.com
Graph Plotting in Python | Set 1 - GeeksforGeeks
Graph Plotting in Python | Set 1 - GeeksforGeeks
A Computer Science portal for geeks. It contains well written, well thought and well explained computer science and programming articles, quizzes and practice/competitive programming/company interview Questions.
www.geeksforgeeks.org
Numpy array 를 shape로 차원확인 하기 :: 바람이 분다 (tistory.com)
Numpy array 를 shape로 차원확인 하기
연산을 수행하다보면, 동적으로 할당된 array 에 대해서 몇행, 몇열 행렬로 구성되었는지 알아야 할 경우가 있다. 이 경우 array의 shape 를 이용하여 간단하게 알 수 있다. a = np.array( [ [1,2,3],[4,5,6],[
barambunda.tistory.com
[SciPy. Curve_Fit] 쓰기위해서 배우는 최소한의 curve_fit 함수 (tistory.com)
[SciPy. Curve_Fit] 쓰기위해서 배우는 최소한의 curve_fit 함수
과학은 실험을 통해 만들어가고 증명해가는 것이라고 생각한다. 그럼 실험데이터를 이용해 말이 되도록? 설명할 수 있도록 해야하는데 그게 바로 그래프를 그리는 일이다. 백번 말로 이런거 같
super-master.tistory.com
4.3.2. Optimization - OneBook(Python & Deep Learning) (gitbook.io)
4.3.2. Optimization - OneBook(Python & Deep Learning)
temp_max = np.array([17, 19, 21, 28, 33, 38, 37, 37, 31, 23, 19, 18]) temp_min = np.array([-62, -59, -56, -46, -32, -18, -9, -13, -25, -46, -52, -58])
sdc-james.gitbook.io
이거는 적용해보진 않았는데 나중에 참고용..
Numpy의 polyfit과 poly1d의 사용법 - 최소제곱법과 polynomial class (pinkwink.kr)
Numpy의 polyfit과 poly1d의 사용법 - 최소제곱법과 polynomial class
제가 아주 예전에 공업수학 연재를 하면서 최소제곱법을 소개했던 적이 있습니다. 에러의 제곱의 합을 최소화하는 공업수학적 방법인데 아주 유용합니다. 그리고, 이를 이용한 Python의 Numpy 함수
pinkwink.kr
'Programming > Python' 카테고리의 다른 글
[Python] File / Exception / Log (0) 2023.08.29 [Python] String, Function, Scoping rule, 함수 작성 가이드라인 (0) 2023.08.15 [Python] outlier 찾기, 마할라노비스 거리 계산 (실전) (0) 2022.12.28 [Python] Outlier(이상치) 찾기 , 마할라노비스 거리 (이론) (0) 2022.12.28 [Python] print .format 자릿수 맞추기, 오른정렬, 소수점 출력 (0) 2022.09.02