Sequential reactions

A-> R-> T
pick 1st order kinetics
r1 = - k1 CA,
r2 = - k2 CR

DSolve[{D[Ca[t],t] + k1 Ca[t] ==0, D[Cr[t],t] - k1 Ca[t]+ k2 Cr[t]==0,
D[Ct[t],t] - k2 Cr[t]==0,Ca[0] ==Ca0, Cr[0] ==0,Ct[0] ==0},{Ca[t], Cr[t],Ct[t]}, {t}]

seeat = (Ca[t]/.%11[[1]])/.{k1->.1,k2->1, Ca0 -> 1}

seert = (Cr[t]/.%11[[1]])/.{k1->.1,k2->1, Ca0 -> 1}

seett = (Ct[t]/.%11[[1]])/.{k1->.1,k2->1, Ca0 -> 1}

Plot[{seeat,seert,seett},{t,0,20}, AxesLabel->{"time","concentrations"}, PlotLegends->{"k1->.1, k2->1"}]

seeat = (Ca[t]/.%11[[1]])/.{k1->.1,k2->1, Ca0 -> 1}

seert = (Cr[t]/.%11[[1]])/.{k1->.1,k2->1, Ca0 -> 1}

seett = (Ct[t]/.%11[[1]])/.{k1->.1,k2->1, Ca0 -> 1}

Plot[{seeat,seert,seett},{t,0,20}, AxesLabel->{"time","concentrations"}, PlotLegends->{"k1->.1, k2->1"}]

seeat = (Ca[t]/.%11[[1]])/.{k1->.1,k2->.099, Ca0 -> 1}

seert = (Cr[t]/.%11[[1]])/.{k1->.1,k2->.099, Ca0 -> 1}

seett = (Ct[t]/.%11[[1]])/.{k1->.1,k2->.099, Ca0 -> 1}

Plot[{seeat,seert,seett},{t,0,20}, AxesLabel->{"time","concentrations"}, PlotLegends->{"k1->.1, k2->.1"}]

seeat = (Ca[t]/.%11[[1]])/.{k1->1,k2->.99, Ca0 -> 1}

seert = (Cr[t]/.%11[[1]])/.{k1->1,k2->.99, Ca0 -> 1}

seett = (Ct[t]/.%11[[1]])/.{k1->1,k2->.99, Ca0 -> 1}

Plot[{seeat,seert,seett},{t,0,10}, AxesLabel->{"time","concentrations"}, PlotLegends->{"k1->1, k2->1"}]

Maximize[(Cr[t]/.%11[[1]])/.Ca0->1,{k1,k2,t}]

Maximize[(Cr[t]/.%11[[1]])/.{k1->1,k2->.99,Ca0->1},{t}]

Maximize[(Cr[t]/.%11[[1]])/.{k1->1,Ca0->1},{k2,t}]

??Maximize

Integrate[ 1/ca/(ca - ca0 + cb0),ca]

Integrate[ 1/ca/(ca - ca0 + cb0),{ca,ca0,cat}, Assumptions->{ca>0, ca0>0,cb0>0, cat>0, ca0>cat}]

DSolve[{D[Ca[t],t] + k1 Ca[t] (Ca[t] - ca0 + cb0) ==0,Ca[0] ==ca0},{Ca[t]}, {t}, Assumptions->{ca>0, ca0>0,cb0>0, cat>0, ca0>cat}]

Ca[t]/.%[[1]]

ans  = FullSimplify[%]

Plot[ans/.{ca0->1, cb0->1.01,k1->1},{t,0,2},PlotLegends->{"cb0/cb0 =1"}]

Plot[ans/.{ca0->1, cb0->10,k1->1},{t,0,2},PlotLegends->{"cb0/cb0 =10"},PlotStyle->Red,PlotRange->{0,1}]

Plot[ans/.{ca0->1, cb0->.5,k1->1},{t,0,2},PlotLegends->{"cb0/cb0 =.5"},PlotStyle->Dashed,PlotRange->{0,1}]