簡體   English   中英

如何計算高斯擬合中的函數均值?

[英]How to calculate mean of function in a gaussian fit?

我正在使用MATLAB中的曲線擬合應用程序。 如果我正確理解左框中的“ b1”分量是函數的平均值,即x點,其中y=50%而我的x數據為[-0.8 -0.7 -0.5 0 0.3 0.5 0.7] ,那么為什么這個數字在這個例子中這么大(631)?

通用模型高斯1:

f(x) =  a1*exp(-((x-b1)/c1)^2)

系數(置信區間為95%):

   a1 =  3.862e+258  (-Inf, Inf)

   b1 =       631.2  (-1.117e+06, 1.119e+06)

   c1 =       25.83  (-2.287e+04, 2.292e+04)

您的數據看起來像cdf,而不是pdf。 您可以使用此代碼作為解決方案

xi=[-0.8,-0.7,-0.5, 0.0, 0.3, 0.5, 0.7];
yi= [0.2, 0.0, 0.2, 0.2, 0.5, 1.0, 1.0];
fun=@(v) normcdf(xi,v(1),v(2))-yi;
[v]=lsqnonlin(fun,[1,1]); %[1,2] 
mu=v(1); sigma=v(2);
x=linspace(-1.5,1.5,100);
y=normcdf(x,mu,sigma);
figure(1);clf;plot(xi,yi,'x',x,y);
annotation('textbox',[0.2,0.7,0.1,0.1], 'String',sprintf('mu=%f\nsigma=%f',mu,sigma),'FitBoxToText','on','FontSize',16);

您將得到:mu = 0.24537,sigma = 0.213

而且,如果您仍然想適合pdf,只需將“ fun”(和“ y”)中的函數“ normcdf”更改為“ normpdf”。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM