Я пытаюсь приспособить очень сложную (сплющенную гауссову) модель к полученным мной данным
Изображение для сплюснутой формулы Гаусса
(переменная fc в моем коде здесь представляет vo, центральную частоту.)
Я написал код на python, используя scipy.optimize import curve_fit.
Он не может оптимизировать мое уравнение и всегда дает одинаковые ответы для параметров.
Ссылка на файл данных: 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: ковариация параметров не может быть оценена
категория = OptimizeWarning)
подогнанные параметры: [1. 1. 1. 1.]
Пожалуйста, помогите мне с установкой, используя scipy или любой другой модуль, который вы считаете хорошим. (как ведущий)