2017-04-15 592 views
0

我在MATLAB中使用曲線擬合應用程序。如果我理解正確的左側框中的「B1」部分是函數的平均值即xy=50%和我x數據[-0.8 -0.7 -0.5 0 0.3 0.5 0.7],爲什麼是這個數字在這個例子中這麼大(631)?如何計算高斯擬合函數的均值?

通用模型Gauss1:

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) 
+0

通過查看應用程序給我的圖,我也可以看到y的數據 –

+0

y = [0.2 0 0.2 0.2 0.5 1 1]我可以看到50%的點在0.4到0.6之間。我不知道如何從公式中計算出這個數字。 – user3200664

回答

1

您的數據看起來像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]; 
[email protected](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,標準差= 0.213

如果你仍然想以適應PDF格式,只需更改功能「normcdf」在「好玩'(和'y')改爲'normpdf'。