Você está na página 1de 5

Annas Khan

20458375

Sept 30, 2014

Task #1

Task #2

Reaction Kinetic Parameters for Linear Regression

Parameter Forward Formula Backward Formula Central Formula


k 2.675241752861128 3.207432003370331 4.401213519835374
0.516604646492106 0.515019767000655 0.668526526091539
1.199304612303370 1.228432556479567 1.164540602216620

SSE and R-Squared Values

SSE R-Squared
Forward Formula 0.166745091280711 0.997723093584404
Backward Formula 0.506296089045520 0.993387032091231
Central Formula 0.083147263899375 0.998904846113777

Confidence Intervals

Forward Formula Backward Formula Central Formula


Lower Upper Lower Upper Lower Upper
0.535837654 1.432241847 0.384473122 1.946468113 1.165382036 1.798378569
758126 573396 911384 132502 158684 563281
0.304648870 0.728560422 0.145684301 0.884355232 0.518853786 0.818199265
726563 257650 428556 572754 528260 654818
1.112446424 1.286162800 1.077081128 1.379783984 1.103205623 1.225875580
329391 277349 672269 286864 725880 707360

Task #3

Parameters from Non-Linear Regression

Parameter Non Linear Reg (Central Formula)

K 3.238613097886019e+03
1.060743585571647
0.965428523974354

Non Linear Reg. Confidence Intervals using Central Formula

Lower Bound Upper Bound


7.049360622412413 9.116440299459876
0.950258654809768 1.171228516333527
0.897058091734436 1.033798956214272

SSE R-Squared
3.993158044851939e-08 0.999768831206095

MATLAB Code

FILE NAME: Template_Experiment5Task2

function Template_Experiment5Task3
% Your name: Annas Khan
% Student ID: 20458375

clear all
format long

time=xlsread('Experiment5_KineticData3.xlsx', 'A3:A58');
Conc=xlsread('Experiment5_KineticData3.xlsx', 'B3:B58');

%------------------------------------------------------------------------%
%--------------------Task#1-----------%
%------------------------------------------------------------------------%
CAo=0.0498;
CBo=0.0406;
h=0.5;
n=length(Conc);

% Calculate the reaction rate using the forward difference equation and
% eliminate outliners if necessary.

global CA CB

t=time(3:n-2);
CA=Conc(3:n-2);
m=length(CA);
CB=CBo-(CAo-CA);
%----4a)---------------
ra=-((Conc(4:n-1)-Conc(3:n-2)))/h

%----4b)---------------
rb= (3*Conc(3:n-2)-4*Conc(4:n-1)+Conc(5:n))/(2*h)

%----6)---------------
rc= -(Conc(4:n-1)-Conc(2:n-3))/(2*h)

plot(t,ra,t,rb,t,rc);
title('Task#1: Reaction Rate vs Time')
ylabel('Reaction Rate');
xlabel('Time');
legend('Eqn4a','Eqn4b','Eqn6');

%------------------------------------------------------------------------%
%--------------TASK 2----------%
%------------------------------------------------------------------------%
y4a=log(ra);
y4b=log(rb);
y6=log(rc);
D=size(CA);
X(:,1)=ones(D(1),1);
X(:,2)=log(CA);
X(:,3)=log(CB);

% For Eqn 4Ra


[bra,bintra,residra,rintra,statsra]=regress(y4a,X,0.05);

kra=exp(bra(1))
alphara= bra(2)
betara=bra(3)
SSEra=sum(residra.^2)
rsqrra = statsra(1)
%CI
bintra

%For Eqn 4Rb


[brb,bintrb,residrb,rintrb,statsrb]=regress(y4b,X,0.05);

krb=exp(brb(1))
alpharb= brb(2)
betarb=brb(3)
SSErb=sum(residrb.^2)
rsqrrb = statsrb(1)
%CI
bintrb
%For Eqn 6Rc
[brc,bintrc,residrc,rintrc,statsrc]=regress(y6,X,0.05);

krc=exp(brc(1))
alpharc= brc(2)
betarc=brc(3)
SSErc=sum(residrc.^2)
rsqrrc = statsrc(1)
%CI
bintrc

%------------------------------------------------------------------------%
%-----------TASK #3---------%
%------------------------------------------------------------------------%

% Set initial guess of parameter values.


m0=[6, 1, 1];

% Set lower and upper bounds for the parameters.


lb=1;
ub=100;
options =optimset('TolX',1e-16,'TolFun',1e-
16,'MaxFunEval',4000,'MaxIter',4000);
SR=size(ra)
m=lsqcurvefit(@KineticEquation,m0,t,ra)
[m,residn,
resid1,exiflage,output,lamda,J]=lsqcurvefit(@KineticEquation,m0,t,rc,lb,ub,op
tions);

%Parameter Values for task 3 nonlinear


knl=exp(m(1))
alphanl=m(2)
betanl=m(3)

NLSSE=sum(resid1.*resid1)
NLSST=sum((rc-mean(rc)).^2);
NLrsqrr=1-(NLSSE./NLSST)

CI=nlparci(m,resid1,'Jacobian',J)

%------------------------------------------------------------------------%
end

FILE NAME: KineticEquation

% M-file to predict reaction rate required by "lsqcurvefit" function.

function rpred=KineticEquation(m,t)

global CA CB

rpred=m(1).*(CA.^m(2)).*(CB.^m(3));
end

Você também pode gostar