<< Statistics`LinearRegression`

This is Problem #5.21 in Levenspiel.

x[1] = 0.1;
y[1] =  0.1;
x[2] = 0.2;
y[2] =  0.3;
x[3] = 0.3;
y[3] =  0.5;
x[4] = 0.4;
y[4] = 0.6;
x[5] = 0.5;
y[5] = 0.5;
x[6] = 0.6;
y[6] =  0.25;
x[7] = 0.7;
y[7] =  0.1;
x[8] = 0.8;
y[8] =  0.06;
x[9] = 1.0;
y[9] =  0.05;
x[10] = 1.3;
y[10] =  0.045;
x[11] = 2.0;
y[11] =  0.042;

concA = Table[x[i], {i, 1, 11}]
rate = Table[y[i], {i, 1, 11}]

rateVsConc1 = Table[{x[i], y[i]}, {i, 1, 11}]

dataPlot1 = 
        ListPlot[rateVsConc1, PlotStyle -> PointSize[0.02],  
          AxesOrigin -> {0, 0}];

This is similar to an autocatalytic reaction, A + R -> R + R (see Ch. 3, pp. 52-53).

k = 1;
cZero = 1;
rateAutocat = k*cA*(cZero - cA);
Plot[rateAutocat, {cA, 0, 1}];

recipRateVsConc = Table[{x[i], 1/y[i]}, {i, 1, 11}]

dataPlot2 = 
        ListPlot[recipRateVsConc, PlotStyle -> PointSize[0.02],  
          AxesOrigin -> {0, 0}];

fittedCurve1 = 
      Regress[recipRateVsConc, Table[conc^i, {i, 0, 5}], conc, 
        RegressionReport -> RSquared]

fittedCurve2 = 
      Fit[recipRateVsConc, Table[conc^i, {i, 0, 5}], conc]

Plot[%, {conc, 0, 2}];
Show[%, dataPlot2];

Integrate[fittedCurve2, {conc, 0.3, 1.3}]

In #5.22, we cannot use the fifth order polynomial. (Why?)... Let's try nonlinear regression.

<< Statistics`NonlinearFit`
fittedCurve3 = 
      NonlinearFit[
        recipRateVsConc, (a1*x^2 + a2*x + a3)/(b1*x^2 + b2*x + b3), 
        x, {a1, a2, a3, b1, b2, b3}]

fitPlot3 = 
        Plot[fittedCurve3, {x, 0, 2}, 
          PlotStyle -> Dashing[{0.02}]];

Show[{dataPlot2, fitPlot3}];