nlinfit not accurately modeling data
古いコメントを表示
Hi! I am probably doing something stupid, but I have a bell-shaped function I want to model as an inverse of the sum of exponentials (of the form 1/(exp((x+a1)/a2)+exp((x+a3)/a4))+a5).
Here is what I have;
input=[-45:5:30]';
output=[.95;1.05;1.3;1.85;1.55;.95;.6;.5;.4;.35;.3;.275;.25;.225;.2;.175]';
mdl = @(a,x)((1/(exp((x+a(1))/a(2))+exp((x+a(3))/a(4))))+a(5))
a0=[97;-30;-18;15;.5];
and then
fitted=nlinfit(input, output, mdl, a0);
but the values I get back are terrible, and don't match the data at all, even when I change the starting values in a0. What am I doing wrong?
3 件のコメント
the cyclist
2012 年 1 月 29 日
I can't look at this right now, but try the following plots:
figure
hold on
plot(input,output,'b.-')
plot(input,mdl(a0,input),'r.-')
Is that about what you expect your initial guess to look like? I see you get a lot of warnings out of nlinfit, too, although I haven't looked at why.
Nick Schmandt
2012 年 1 月 29 日
Nick Schmandt
2012 年 1 月 29 日
採用された回答
その他の回答 (0 件)
カテゴリ
ヘルプ センター および File Exchange で Introduction to Installation and Licensing についてさらに検索
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!