데이터를 넣으려고 할 때 결과가 조금 이상하고 왜 이해가 안되나요? 얻은 피팅은 평면이며 첫 번째 입력은 e = 0입니다. 어딘가에서 분열 오류를 일으킨 것 같습니다. 나는 전자를 수정할 때 유일한 일 경우 [0] = 1.0E-9커브 피팅을 사용한 이상한 결과
결과 다음입니다 : 내 예를 들어 지금까지 내가 읽은 것과없는 것 같다 예를 here에서
,하지만 내가 붙어있어, 제 경우에 무슨 일이 일어나고 있는지 제발 도와 주실 수 있습니까?
import numpy as np
from scipy.optimize import curve_fit
import matplotlib.pyplot as plt
src_s = np.array((45.59,50.66664,59.74871,65.71018,72.76012,79.06256,84.13755,90.39944,
96.33653,101.65667,106.27968,110.76301,114.41808,117.21922,120.51836))
src_e = np.array((0.0,0.00126,0.00503,0.00804,0.01228,0.01685,0.02127,0.02846,0.03666,
0.04581,0.05620,0.06882,0.08005,0.09031,0.10327))
# plot source data
plt.plot(src_e, src_s, 'o')
# fitting function
def sigma(e, k ,n): return k*(e**n)
# find parameters curve fitting
param, var = curve_fit(sigma, src_e, src_s)
new_e = np.linspace(src_e.min(), src_e.max(), 50)
plt.plot(new_e, sigma(new_e, *param))
# modify first input
src_e[0]=1.0e-9
# relaunch parameters curve fitting
param, var = curve_fit(sigma, src_e, src_s)
new_e = np.linspace(src_e.min(), src_e.max(), 50)
plt.plot(new_e, sigma(new_e, *param))
plt.show()
미리 도움을 주셔서 감사합니다.
하십시오이 설명하는 "결과는 약간 이상한 이유를 이해하지 않습니다"나는 당신을 위해 이미지를 추가 –
. SO에 오신 것을 환영합니다! ;) –
내 친구 고마워;) 맥주 가져 가라. – Jyb