我正在尝试将非常复杂的(平顶高斯)模型拟合到我获得的数据中。 Image for flattened Gaussian formula (我的代码中的变量fc表示vo,中心频率。)
我已经使用来自scipy.optimize import curve_fit的python代码编写了代码。 它无法优化方程式,并且始终会为参数提供相同的答案。 链接到数据文件:https://www.filehosting.org/file/details/795968/my-file.dat
import numpy as np
from scipy.optimize import curve_fit
x = np.loadtxt("my-file.dat")[:,0]
yres = np.loadtxt("my-file.dat")[:,1]
def flatgauss(x, A,fc,t,w):
B= ((4*(x-fc)**2)/ w**2 ) * np.log((-1/t)*np.log((1+ np.exp(-t))/2))
return -A*( (1-np.exp(-t*np.exp(B)))/ (1-np.exp(-t)) )
popt, pcov = curve_fit(flatgauss, x, yres)
print ("fitted parameters:", popt)
这是我得到的: OptimizeWarning:无法估计参数的协方差 category = OptimizeWarning) 拟合参数:[1。 1. 1. 1。]
请使用scipy或您认为不错的任何其他模块来帮助我进行安装。 (如司仪)