2017-05-05 11 views
0

私は、ダイアグラムフィットから値を見つける方法を探しています。私はそれがMATLABで可能であることを知りたいだけですか?この目的のためのコードラインはありますか?例えば衣装の可変パラメータとの適合

次のように私は2つの行列データを持っている:

X=[1 2 3 4 5 6 7 8 9] 

Y=[9 8 7 6 5 4 3 2 1] 

私はこのような非線形方程式(衣装フィット)と、これらのデータに合うようにしたい:

a*(w+1)*x^w*exp⁡(a*x^(w+1)) ; a=gamma ((w+2)/(w+1)) 

しかし、この方程式は可変パラメータwを有する。私はMATLABに私にwを与えたいと思っています。私はこのパラメータのために自分のデータに最適なものを得ることができます。カーブフィッティングのため

答えて

0

使用fit

% define function as a string 
f = 'gamma((w + 2)/(w + 1))*(w + 1)*(x.^w).*exp(gamma((w + 2)/(w + 1))*x.^(w + 1))'; 
X = [1 2 3 4 5 6 7 8 9]; 
Y = [9 8 7 6 5 4 3 2 1]; 
% define fit parameters 
fitType = fittype(f, 'Independent', 'x' ,'coefficients',{'w'}); 
% fit data 
fitobject = fit(X(:),Y(:),fitType,'StartPoint', 0); 
% coefficient value 
w = coeffvalues(fitobject) 
% plot 
plot(X,Y,'.'); 
hold on 
plot(fitobject); 
title(['w = ' num2str(w)]) 

enter image description here

+0

は、あなたの答えをありがとうございました、そして、右のようですが、私は同じことを行うために私のデータを使用する場合、それはのように私にエラーを与えます:{ fittype式のエラー==>ガンマ((w + 2)./(w + 1))。(w + 1))*(w + 1)。*(x。^ w)。* exp (w + 1))×(w + 1)) ?γ(γ(w + 2)入力は実数かつ完全でなければなりません。 エラーが==> 460に収まる errstr = handleerr(errid、errmsg、suppresserr); ==> Untitled in 11 のエラーfitobject = fit(s(:)、p(:)、fitType、 'StartPoint'、0);}私はf関数とXとYの名前も変更します。 – Paris

関連する問題