2017-04-15 5 views
0

私はMATLABでカーブフィッティングアプリを使用しています。私が正しく理解していれば、左のボックスの「b1」コンポーネントは、機能の平均、すなわちy=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

あまりにも –

+0

y = [0.2 0 0.2 0.2 0.5 1 1]と書くと、アプリが私に与えるプロットを見ると、50%ポイントが0.4から0.6の間のどこかにあることがわかります。私は式からその数を計算する方法を知らない。 – user3200664

答えて

1

あなたのデータは累積分布関数ではなく、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

そして、あなたはまだだけで楽しい」で関数「normcdf」を変更するには、PDFに収まるようにしたい場合'(および' y ')を' normpdf 'に設定します。