function Example_8 clear, clc, format short g, format compact global Feval SumSave load P6_9.txt % Load experimental data as a text file. % First column - independent variable. 2nd % and higher columns dependent variables. % All columns must be full. Missing values % are not permitted Beta=[0.1 4 0.02 0.02]; % Initial estimate for parameter values Feval=0; SumSave=realmax; [BetaOpt,Fval,exitflag,Output]=fminsearch(@SumSqr,Beta,[],P6_9); disp(' '); disp('Optimal Results '); disp(' Parm. No. Value') for i=1:size(Beta,2) disp([i BetaOpt(i)]); end disp([' Final Sum of Squares ' num2str(Fval) ' Function evaluations ' num2str(Feval)]); tspan = [P6_9(1,1) P6_9(end,1)]; y0=[P6_9(1,2) P6_9(2,2)]; [t,y]=ode45(@ODEfun,tspan,y0,[],BetaOpt); for i=1:size(y,2) hold off plot(t,y(:,i)); title([' Plot of dependent variable y' int2str(i)]); xlabel(' Independent variable (t)'); ylabel([' Dependent variable y' int2str(i)]); hold on plot(P6_9(:,1),P6_9(:,i+1),'*') pause end function sum=SumSqr(Beta,data) global Feval SumSave Feval=Feval+1; time=data(:,1); ym=data(:,2:end); yc(1,:)=ym(1,:); [nr,nc]=size(ym); % nr - number of data points; % nc - number of dependent variables tspan = [time(1) time(2)]; % Range for the independent variable y0 = ym(1,:); % Initial values for the dependent variables for i=2:nr [t,y]=ode45(@ODEfun,tspan,y0,[],Beta); yc(i,:)=y(end,:); if i