Я должен сделать подбор, используя Curve_fit. Моя проблема в том, что вместо непрерывной кривой я получаю ломаную линию, как показано на рисунке. Вот мой код:
%matplotlib inline
import matplotlib.pyplot as plt
import numpy as np
from scipy.optimize import curve_fit
N=np.array([66851,200522,401272,801832,1200951])
e=np.array([2.88,1.75,1.17,0.80,0.71])
def er_func(x,A,c):
return A/np.sqrt(x)+c
from scipy.optimize import curve_fit
popt, pcov=curve_fit(er_func,N,e,p0=[10,1000])
plt.plot(N,er_func(N,*popt),"b")
plt.plot(N,e,"xr")
plt.xlabel("Number of events")
plt.ylabel("Error [Chn]")
[https://i.stack.imgur.com/BZtnN.png][1]
Я думаю, что это происходит потому, что я строю функцию подгонки, вычисленную в соответствии с моими точками, а затем она соединяет пять точек прямой линией. Как я могу получить правильную посадку?
Спасибо за любую помощь, вы можете предоставить.