0
가우스에 적합하지만 변수 cen과 cen2가 일정해야합니다.변수를 적합하지 않게 설정하는 방법
from pylab import *
import matplotlib.mlab
from lmfit import Model
def gaussian(x, amp, cen, wid,amp2,cen2,wid2):
return (amp/(sqrt(2*pi)*wid)) * exp(-(x-cen)**2 /(2*wid**2))+
(amp2/(sqrt(2*pi)*wid2)) * exp(-(x-cen2)**2 /(2*wid**2))
model = Model(gaussian)
model.set_param_hint('amp',min=1.4, max=1.48)
model.set_param_hint('amp2',min=0.00003,max=0.00005)
parameters = model.make_params(amp=1.46, cen=0, wid=1, amp2=0.00005,
cen2=10,wid2=5)
result = model.fit(y, parameters, x=x)
모델은 가우스이지만 피치를 f.ex로 설정합니다. 5.
print(result.fit_report())
#plt.yscale('log')
#plt.ylim(((0,0.0004)))
plt.scatter(x, y, s=0.7)
plt.plot(x, result.best_fit, 'r-')
plt.fill_between(x, result.best_fit-0.03, result.best_fit+0.03,
color="#ABABAB",alpha=0.5)
plt.show()
어떻게하면됩니까?
@kKinga Jn "cen과 cen2는 항상 일정해야합니다"는 의미는 무엇입니까? 또한 "0.0이 아니라 f.ex. 5로 센터 설정"은 무엇을 의미합니까? 귀하의 "가우스"함수는 2D 가우스를 정의하지 않지만 2 개의 1-D 가우스를 합한 것입니다. 당신이 맞추려고하는 것을 더 잘 설명하고 전체 스크립트와 전체 출력을 모두 제공하는 것이 도움이 될 것입니다. –
끊임없이 있어야합니다. 즉, 적합하지 않거나 변경되지 않습니다. 이 매개 변수 (cen, cen2)를 설정하면 변경되지 않습니다. 예, 당신 말이 맞아요! 이것은 2 개의 1-D 가우시안의 합계입니다. 내 잘못. 그리고 ... 이것은 전체 스크립트입니다. –