1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41
|
function Estimates = fitcurvedemos
% Define function and starting point of fitting routine.
fun = @exp;
Starting = rand(1, 4);
load donnee.txt;
t=donnee(:,1);
ym1=donnee(:,2);
ym2=donnee(:,3);
ym=[ym1 ym2];
% Now, we can call FMINSEARCH:
options = optimset('fminsearch'); % Use FMINSEARCH defaults
Estimates = fminsearch(fun, Starting, options, t, ym);
function sse = exp(t, y);
load donnee.txt;
t=donnee(:,1);
y01=donnee(1,2);
y02=donnee(1,3);
Options=odeset('RelTol',1e-4,'AbsTol',1e-4*ones(2,1));
[t,y] = ode45(@expfunn, t, [y01 y02],options);
y1 = y(:,1)
y2 = y(:,2)
sse = sum((ym1-y1).^2)+sum((ym2-y2).^2)
function ypoint = expfunn(params, t, ym, y)
global mumax ks kd yh y
mumax=params(1); %pars(1)
ks=params(2); %pars(2)
kd=params(3); %pars(3)
yh=params(4); %pars(4)
ypoint(1)=((mumax*(y(2)/(y(2)+ks)))-kd)*y(1);
ypoint(2)=-(mumax/yh)*(y(2)/(y(2)+ks))*y(1);
ypoint=ypoint'; |
Partager