Furthermore, as I explained when you asked before
http://community.wolfram.com/groups/-/m/t/283255/
, your fitting procedure is still incorrect. You run
ClearAll[Vmax, Km, fit, Cb0, Fuc, Pdiff, te, Model3];
Model3[Vmax_?NumericQ, Km_?NumericQ, Fuc_?NumericQ, Pdiff_?NumericQ,
Cb0_?NumericQ,
te_] := (Model3[Vmax, Km, Fuc, Pdiff, Cb0] =
Ca[te] /.
First[NDSolve[{
Ca'[t] == ((Vmax Cb[t])/(Km + Cb[t]) - Pdiff Fuc Ca[t] +
Pdiff Cb[t])/Va,
Cb'[t] == (Pdiff Fuc Ca[t] -
Pdiff Cb[t] - (Vmax Cb[t])/(Km + Cb[t]))/Vb,
Ca[0] == 0,
Cb[0] == Cb0 },
{Ca, Cb}, {t, 0, 45}, MaxSteps -> 100000,
PrecisionGoal -> \[Infinity]]]);
which contains Va and Vb. Then you fit
fit1 = NonlinearModelFit[
Dataimp, {Model3[Vmax, Km, Fuc, Pdiff, Cb0, te]}, {{Vmax,
0.001119}, {Km, 15}, {Fuc, 0.1}, {Pdiff, 0.000000345}}, {Cb0, te},
Weights -> (1/#3 &)]
but this does not contain a Va or Vb. This cannot work. This is why in your file you get error messages like:
Part::partd: Part specification $Failed[[1]] is longer than depth of
object. >> NonlinearModelFit::wtsnn: One or more weight values are not
non-negative numbers. Weight values must be non-negative. >>
The fix is in the reply to your last post. Also I am not sure what you want to plot at the end. As Peter Fleck said, Plot[ListPlot ...] does not work. I suppose that you want to plot something like
Show[ListPlot3D[Dataimp], Plot3D[fit1[Cb0, te], {Cb0, 0, 30}, {te, 0, 45}]]
In the attached notebook, I have again (!) added Va and Vb just like the last time when you asked. The fit now (just like last time) fits a function, but it does not meet the criteria for the tolerances/precision and it also needs to use extrapolation. This is why you still get many error messages. Also because I fixed Va and Vb, the fit is not really good at all. It does, however, plot the two functions.
Cheers,
Marco
Attachments: