我正在尝试进行线性拟合,但我有两个问题。首先,它告诉我“无法估计参数的协方差”,即使我对参数的猜测应该是正确的。我还收到以下错误:“'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")