-1

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

1 回答 1

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])
于 2018-08-16T22:23:18.333 回答