使用curve_fit进行线性拟合

时间:2018-08-16 21:40:52

标签: python matplotlib scipy curve-fitting

我正在尝试进行线性拟合,但是我有两个问题。首先,它告诉我 即使我对参数的猜测应该是正确的,但“无法估计参数的协方差”。我还收到以下错误:“'numpy.float64'对象无法解释为整数”。我认为最后一个错误意味着我在需要整数的地方使用了浮点数,但我不知道错误在哪里。感谢您提供的任何帮助!

%matplotlib inline
import matplotlib.pyplot as plt
import numpy as np  
from scipy.optimize import curve_fit   

E1=[13.95,17.74]
CH=[880.89,1122.28]
errCH=[0.10,0.21]
errE1=[0.0,0.0]

def cal_func(x,c,m):
    return m*x+c
from scipy.optimize import curve_fit
popt, pcov=curve_fit(cal_func,E1,CH,p0=[-10,60])

plt.plot(E1,cal_func(E1,*popt))
plt.errorbar(E1,CH,errCH,errE1,linestyle="none")
plt.xlabel("Energy [KeV]")
plt.ylabel("Bin")

1 个答案:

答案 0 :(得分:0)

这将解决“ float64”错误:

E1=np.array([13.95,17.74])
CH=np.array([880.89,1122.28])
errCH=np.array([0.10,0.21])
errE1=np.array([0.0,0.0])
相关问题