我有一个脚本将实验数据拟合到一个模型上,目前为止效果很好,唯一的问题是当我试图打印拟合结果时
我的失败是什么
par = ['a', 'u', 'e', 'w', 'h', 'b', 'c1', 'p', 'd']
# parameters
a = 20
u = 4
e = 2.84
w = 0.047
h = 0.10
b = 0.1
# structural parameters
c1 = 1.4
p = 50
d = 4.3
pars_bounds=([-np.inf,-np.inf,2.84, -np.inf,-np.inf,-np.inf, -np.inf, -np.inf, 4.3],\
[np.inf,np.inf,3, np.inf,np.inf,np.inf, np.inf, np.inf,6])
pars = (a, u, e, w, h, b, c1, p, d)
rslt, err = curve_fit(guass_FP, x, y, pars , bounds = pars_bounds)
pars_err = np.sqrt(np.diag(err))
err = pars_err.round(5)
rslt = rslt.round(4)
# print fit parameters and uncertainties
for v, p in enumerate(par):
p = p +": {0} \u00B1 {1}".format(rslt[v], err[v])
print(p)
输出:
a: 21.1449 ± 3.11362
u: 4.6946 ± 0.01288
e: 2.844 ± 9e-05
w: 0.0384 ± 0.00012
h: 0.1967 ± 0.00233
b: 0.0 ± 0.00249
c1: 1.4 ± 0.0
p: 50.0 ± 0.0
d: 4.3 ± 0.0
Traceback (most recent call last):
File "FP_fit.py", line 152, in <module>
plt.plot(x,guass_FP(x, *pars), 'b--', label='guess', linewidth=1.0)
File "FP_fit.py", line 62, in guass_FP
m = Fabry_Perot(x)
File "FP_fit.py", line 46, in Fabry_Perot
fp = (1+(R23**2+2*R23*cos(4*pi*n_gn*(d*1000-p)/x))) /(1+(R21**2*R23**2-2*abs(c1)*R21*R23*cos(4*pi*n_gn*(d*1000-p)/x)))
TypeError: unsupported operand type(s) for -: 'float' and 'str'
目前没有回答
相关问题 更多 >
编程相关推荐