2015-04-29 21 views
0

我有一個數據集(x,y),在那裏我適合高斯三個學期(gauss3):找到最大的高斯多個方面 - MATLAB

[gaussianFit,gof]=fit(x,y,'gauss3'); 

現在,我想找到的最大這個功能。我知道對於gauss1,最大值只是b1參數,但我不知道如何找到最大值,當它是多個高斯之和時。這些術語似乎是加權的(否則,我的想法只是三個b-術語的平均值)。我的第二個想法是與所有的參數,解決了整個差異化功能:

syms x 
diff(a1.*exp(-((x-b1)./c1).^2) + a2.*exp(-((x-b2)./c2).^2) + a3.*exp(-((x-b3)./c3).^2)==0); 
solve(dEqn,x) 

...但是這給了我的參數,這是不是原來的值了一些非常奇怪的值。我覺得這只是一個簡單的繁瑣解決方案。

我希望有人能幫助我,因爲我沒有想法。

回答

0

從擬合的參數中重構分佈可能是最容易的,但是您不需要爲它使用符號數學。

你就可以使用eval重建的曲線,然後找到的最高值正常:

a = 3; b = 4; x = 1:10; 
recon = eval('a*x + b'); 
[mx, mI] = max(recon); 

你可以表達爲從返回的配合對象的字符串,或者使用規範形式。