Skip to main content

Fit y = ax/(b + x)

Short answer

Linearize to 1/y = 1/a + (b/a)(1/x), compute normal equations, yielding a = 0.9999, b = 0.9995. Thus the fitted curve is y = 0.9999x/(0.9995 + x), essentially y = x/(1+x).

Fit the following set of data into a curve y = ax/(b + x).

X12345
Y0.5000.6670.7500.20.833

Assumption. The printed y at x = 4 is 0.2, which breaks the pattern of the other values (0.500, 0.667, 0.750, … 0.833, all of the form x/(1+x)); it is taken as a misprint of 0.800.

Linearisation

y = ax/(b + x) → 1/y = (b + x)/(ax) = 1/a + (b/a)(1/x)

Put Y = 1/y, X = 1/x, then Y = A + BX, with A = 1/a and B = b/a.

xyX = 1/xY = 1/yX²XY
10.5001.00002.00001.00002.0000
20.6670.50001.49930.25000.7496
30.7500.33331.33330.11110.4444
40.8000.25001.25000.06250.3125
50.8330.20001.20050.04000.2401
Σ2.28337.28311.46363.7467

Normal equations

ΣY = n·A + B·ΣX      →  7.2831 = 5A + 2.2833B
ΣXY = A·ΣX + B·ΣX²   →  3.7467 = 2.2833A + 1.4636B

Solving: B = (nΣXY − ΣXΣY)/(nΣX² − (ΣX)²) = 0.9996, A = (ΣY − BΣX)/n = 1.0001.

Hence a = 1/A = 0.9999 and b = B/A = 0.9995.

Answer: y = 0.9999x/(0.9995 + x), which is practically y = x/(1 + x). Check: x = 3 gives 0.750 against 0.750.

If the printed value 0.2 is used literally, the same method gives a ≈ 0.386, b ≈ −0.325, a poor and meaningless fit (negative b), which supports the misprint reading.

✓ Answer checked by Claude Opus 5.5 (high effort)

All Numerical Method chapter 4 questions →