lsqcurvefit与matlab中的fmincon估算参数

时间:2018-04-14 11:47:59

标签: matlab least-squares estimation

我已经将一些数据拟合到非线性ODE系统以估计ODE模型参数。我是使用lsqcurvefit完成的,但现在出于不同的原因想要使用fmincon进行尝试(因为现在我想同时将两个数据集放到同一个模型中)。

首先,我尝试使用与lsqcurvefit相同的数据,只更改代码以包含fmincon
 我的问题是fmincon即使我使用lsqcurvefit估算作为初步猜测,也不能很好地适应。
因为我正在最小化目标函数

sum((fitted-data)^2)

相当于lsqcurvefit为什么我不适合fmincon

这是matlab代码,

lb=[0,0.001,0,0,0,0,0];
ub=[inf,inf,1,1,1,100,100];
x=[thours,data];

[fit,fval]=fmincon(@(parameters)ssq(parameters,x),initial,[],[],[],[],lb,ub)

function SSE=ssq(parameters,x)
    time=x(:,1);
    data=x(:,2);


    fitted=model(parameters,time);
    error1=fitted(:,1)-data;
    SSE=sum(error1.^2);


end

function [output]= model(parameters,thours) 
%ODE model code

0 个答案:

没有答案