nlinfit not accurately modeling data
1 visualización (últimos 30 días)
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
Respuesta aceptada
Tom Lane
el 29 de En. de 2012
In your model function you have "1/<stuff>" where you almost certainly intended element-by-element division, "1./<stuff>". You'll also want to remove the transpose from the definition of output.
Más respuestas (0)
Ver también
Categorías
Más información sobre Gaussian Process Regression en Help Center y File Exchange.
Productos
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!