function P3_03C2 clear, clc, format short g, format compact xyData=[100 3.82E-03 110 2.29E-03 120 1.53E-03 130 1.08E-03 140 8.32E-04 150 6.59E-04 160 5.46E-04 170 4.53E-04 180 3.82E-04 190 3.36E-04 200 2.87E-04 220 2.24E-04 240 1.80E-04 260 1.44E-04 270 1.30E-04 280 1.17E-04 290 1.05E-04 300 9.59E-05]; X=xyData(:,1); m=size(X,1); %Determine the number of data points Y=log10(xyData(:,2)); prob_title = ([' Visc. Propane, Antoine Eq. Params, Nln. Regr']); dep_var_name=['log (viscosity) ']; ind_var_name=['Temperature (K)']; parm=[-4.51 159.9 -26.18]; npar=size(parm,2); % Determine the number of the parameters options=optimset('MaxFunEvals',1000); % Change the default value for MaxFunEvals Beta=fminsearch(@AntFun,parm,options,X,Y); % Find optimal parameters using fminsearch [f,Ycalc]=AntFun(Beta,X,Y); % Compute Y (calculated) at the optimum disp([' Results,' prob_title ]); Res=[]; for i=1:npar Res=[Res; i Beta(i)]; end disp(' Parameter No. Value '); disp(Res); s2=sum((Y-Ycalc)'*(Y-Ycalc))/(m-npar); %variance disp([' Variance ', num2str(s2)]); ymean=mean(Y); R2=(Ycalc-ymean)'*(Ycalc-ymean)/((Y-ymean)'*(Y-ymean));%linear correlation coefficient disp([' Correlation Coefficient ', num2str(R2)]) plot(Y,Y-Ycalc,'*') % Residual plot title(['Residual Plot, ' prob_title ]) xlabel([dep_var_name '(Measured)']) ylabel('Residual') pause plot(X,Ycalc,'r-',X,Y,'b+' ) %Plot of experimental and calculated data title(['Calculated/Experimental Data ' prob_title]) xlabel([ind_var_name]) ylabel([dep_var_name]) function [f,Ycalc]=AntFun(parm,X,Y) a=parm(1); b=parm(2); c=parm(3); for i=1:size(X,1); Ycalc(i,1)=(a+b/(X(i)+c)); end resid(:,1)=Y-Ycalc; f=resid'*resid;