フィルターのクリア

Custom Fit Fit options

5 ビュー (過去 30 日間)
J.S.
J.S. 2018 年 6 月 22 日
編集済み: Matt J 2018 年 6 月 25 日
I have created a custom fittype and tried let MATLAB itself find the starting point, given lower and upper bounds that I specify. However, those bounds seem to have been ignored when the fit process was performed (see attachments). Does anyone know how I can force MATLAB to search for the coefficients between the bounds I have specified? Thank you.

回答 (1 件)

Matt J
Matt J 2018 年 6 月 22 日
編集済み: Matt J 2018 年 6 月 23 日
The bounds weren't ignored. You defined them in "Options", but just forgot to pass Options to the fitting routine.
  4 件のコメント
J.S.
J.S. 2018 年 6 月 25 日
Sorry about that.
x0=0.6; y0=0.6;
HOF=fittype('a*exp(b*(x-x0))+c*exp(d*(x-x0))+y0','coefficients',{'a','b'...
'c','d'},'problem',{'x0','y0'},'independent','x');
L=[0,(-1/(0.1e-9)),0,(-1/(0.1e-9))];
U=[1,(-1/(1e-6)),1,(-1/(1e-6))];
Op=fitoptions(HOF);
Op.Lower=L;
Op.Upper=U;
f_normTEST=fit(binTimeCol,bindataColNorm,HOF,'problem',{x0,y0},Op);
binTimeCol and bindataColNorm are two column vectors of the same length.
Matt J
Matt J 2018 年 6 月 25 日
編集済み: Matt J 2018 年 6 月 25 日
Well, the problem is probably that you are now constraining b,d to a region where the exp() operations overflow to infinity, as in the following:
>> exp(1000)
ans =
Inf
You need to double-check the magnitudes of (x-x0) to be sure that range is sensible.
One other remark. I recommend reformulating the model as follows
U=[1,(-1/(1e-6)),1,-1];
HOF=fittype('a*exp(b*X)+c*exp((b+d)*X)',...
'coefficients',{'a','b','c','d'},'independent','X');
f_normTEST=fit(binTimeCol-x0,bindataColNorm-y0,HOF,Op);
There are 2 main changes. First, the input data is pre-offset by x0,y0 so that the fitting routine doesn't have to repeat it unnecessarily in every iteration. Second, one of the exponential parameters is now represented as b+d. This tells the solver that those parameters are meant to be nonequal, since that would make a,c ambiguous.

サインインしてコメントする。

カテゴリ

Help Center および File ExchangeLinear and Nonlinear Regression についてさらに検索

製品


リリース

R2015b

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by