nlinfit not accurately modeling data
Mostrar comentarios más antiguos
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 comentarios
the cyclist
el 29 de En. de 2012
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
el 29 de En. de 2012
Nick Schmandt
el 29 de En. de 2012
Respuesta aceptada
Más respuestas (0)
Categorías
Más información sobre Gaussian Process Regression en Centro de ayuda y File Exchange.
Productos
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!