# # Case 1: # # 7 x 7 ODE system, programmed as the example on p44, # Solving Differential Equations in R # # ODE routine in-line # # Library of R ODE solvers library("deSolve") # # Parameter values for BP10001 k1=8.87e-03; k2=13.18; k3=0.129; k4=0.497; k5=0.027; k6=0.545e-3; km2=87.7; km3=99.9; # # Initial condition yini=c(y1=0.10724,y2=0,y3=0,y4=0,y5=0,y6=0,y7=0) yini # # t interval nout=21 times=seq(from=0,to=2000,by=100) # # ODE programming bioreactor_1=function(t,y,parms) { with(as.list(y), { # # Assign state variables: xylose =y1; xylitol =y2; xylulose =y3; acetaldehyde=y4; ethanol =y5; acetate =y6; glycerol =y7; # # Fluxes J1=k1*xylose; J2=k2*xylitol-km2*xylulose*ethanol; J3=k3*xylulose-km3*acetaldehyde*ethanol; J4=k4*acetaldehyde; J5=k5*acetaldehyde; J6=k6*xylulose; # # Time derivatives f1=-J1; f2=J1-J2; f3=J2-2*J3-2*J6; f4=3*J3-J4-J5; f5=J4; f6=J5; f7=3*J6; # # Return derivative vector list(c(f1,f2,f3,f4,f5,f6,f7)) }) } # # ODE integration out=ode(y=yini,times=times,func=bioreactor_1,parms=NULL) # # ODE numerical solution for(it in 1:nout){ if(it==1){ cat(sprintf( "\n t y1 y2 y3 y4 y5 y6 y7"))} cat(sprintf("\n %8.0f%8.4f%8.4f%8.4f%8.4f%8.4f%8.4f%8.4f", out[it,1],out[it,2],out[it,3],out[it,4], out[it,5],out[it,6],out[it,7],out[it,8])) } plot(out)