How to fit data to an asymptotic exponential?

2.3k Views Asked by At

I have 3 points that I must adjust to the following formula:

$$ C = a' \cdot (1-e^{\alpha \cdot t})$$

The magnitudes I know are $C$ and $t$, and I have to obtain $a'$ and $\alpha$.

I know that usually this is done by using a variable change to transform the exponential to a linear function, but I cannot figure out how.

Some example points could be:

 t  C
--------
 4, 6
 8, 9.5
20, 10

Any guidance on how to obtain $a'$ and $\alpha$ are appreciated.

4

There are 4 best solutions below

0
On BEST ANSWER

You have 3 points, and only 2 parameters. Unless you are so lucky that they agree, you'll have to set up e.g. a least squares fit:

$\begin{align} E(a', \alpha) = \sum_i \left( C_i - a' (1 - \mathrm{e}^{\alpha t_i}) \right)^2 \end{align}$

and find $a', \alpha$ that minimizes this. For that you'll have to look for some numerical method.

1
On

Here is my solution

With t = 4, C = 6, we have $$ 6 = a' * (1 - e^{a-4}) $$ With t = 20, C = 10 we have $$ 10 = a' * (1-e^{a-20}) $$ Then $$ \frac{6}{1-e^{a-4}} = \frac{10}{1-e^{a-20}}$$ Now all you need to do is expand and abridge, you'll finally find $a$ and $a'$

0
On

Define $e^{4\alpha}=z$. Your equations are

$$C_4=a(1-z)\\C_8=a(1-z^2)\\C_{20}=a(1-z^5).$$

Taking ratios,

$$\frac{C_8}{C_4}=1+z,\\\frac{C_{20}}{C_4}=1+z+z^2+z^3+z^4.$$

Solving these two equations (with a numerical solver for the second) yields $$z=0.5833333333333\cdots,\\z=0.4066739512028\cdots.$$

Given the large disagreement between them, I would say that trying to fit this model on just three points doesn't make much sense.

0
On

Suppose that you want to fit the $n$ data points $(t_i,C_i)$ using, as a model, $$C=a(1-e^{bt})$$ This model is highly nonlinear and, as already mentioned, nonlinear regression is required in order to minimize, say, the sum of squared errors $$SSQ=\sum_{i=1}^n \Big(a(1-e^{bt_i})-C_i\Big)^2$$ The problem is that you need "reasonable" estimates to start the procedure.

But, suppose that you fix $b$; then, you can define $y_i=1-e^{bt_i}$ and the problem reduces to $C=a y$ which correspond to a linear regression through the origin (no intercept). So, for this value of $b$, you can compute $SSQ$; now, change $b$ until you get a point looking more or less like the minimum. So, you have your starting values.

Even if fitting a curve based on three points is not the best situation, let us try using your data for a few trials $$\left( \begin{array}{cc} b & SSQ(b) \\ -0.1 & 9.432 \\ -0.2 & 1.130 \\ -0.3 & 1.105 \\ -0.4 & 2.847 \end{array} \right)$$

So, we can use as starting guesses $b=-0.2$ to which corresponds $a=10.87$.

The nonlinear regression will give $$C=10.3403 \left(1-e^{-0.244113 t}\right)$$ corresponding to $SSQ=0.660$; the predicted values would be $6.45$, $8.87$, $10.26$ (which is not very good).