Repeated Arithmetic Operations
Thomas J. Kennedy
So far we have covered error propagation through simple arithmetic operations (e.g., a single addition or multiplication operation). What happens when we have:
- repeated addition?
- repeated subtraction?
- repeated multiplication?
- repeated division?
We will work through the error analysis for repeated multiplication and division. I will leave addition and subtraction up to you (i.e., as practice exercises).
1 Repeated Multiplication
Suppose we have a repeated multiplication operation.
$$ x_0 * x_1 * x_2 * … * x_{n-2} * x_{n-1} $$
Let us denote this product as $S_n$ and rewrite it using product notation.
$$ \begin{eqnarray} S_n &=& x_0 * x_1 * x_2 * … * x_{n-2} * x_{n-1} \\ &=& \prod\limits_{i=0}^{n-1}x_i \\ \end{eqnarray} $$
$S_n$ represents infinite precision. That means we need to define $S_n^{*}$.
$$ \begin{eqnarray} S_n^{*} &=& x_0^* * x_1^* * x_2^* * … * x_{n-2}^* * x_{n-1}^* \\ &=& \prod\limits_{i=0}^{n-1}x_i^{*} \\ &=& \prod\limits_{i=0}^{n-1}x_i(1 + \epsilon_i) \\ \end{eqnarray} $$
We need the relative error… Let us do some quick algebra with our $S$ terms.
$$ \begin{eqnarray} relative\phantom{1}error &=& \Bigg|\frac{S_n^{*} - S_n}{S_n} \Bigg| \\ &=& \Bigg|\frac{S_n^{*}}{S_n} - 1 \Bigg| \\ \end{eqnarray} $$
If we focus on $\frac{S_n^*}{S_n}$…
$$ \begin{eqnarray} \frac{S_n^*}{S_n} &=& \frac{\prod\limits_{i=0}^{n-1}x_i(1 + \epsilon_i)}{\prod\limits_{i=0}^{n-1}x_i} \\ &=& \prod\limits_{i=0}^{n-1}\frac{x_i(1 + \epsilon_i)}{x_i} \\ &=& \prod\limits_{i=0}^{n-1}(1 + \epsilon_i) \\ \end{eqnarray} $$
… we end up with a nice simplification! We can then plug that back into to original equation… and continue the evaluation.
$$ \begin{eqnarray} relative\phantom{1}error &=& \Bigg|\frac{S_n^{*} - S_n}{S_n} \Bigg| \\ &=& \Bigg|\frac{S_n^{*}}{S_n} - 1 \Bigg| \\ &=& \Bigg| \prod\limits_{i=0}^{n-1}(1 + \epsilon_i) - 1 \Bigg| \\ &=& \Bigg| 1 + \sum\limits_{i=0}^{n-1}(\epsilon_i) - 1 \Bigg| \\ &\approx& \Bigg| \sum\limits_{i=0}^{n-1}(\epsilon_i) \Bigg| \end{eqnarray} $$
This is similar to our earlier result for $x^* * y^*$. The error in multiplication is the sum of the errors of the terms being multiplied.
2 Repeated Division
Suppose we have a division operation.
$$ x_0 / x_1 / x_2 / … / x_{n-2} / x_{n-1} $$
… which we can rewrite as a repeated multiplication operation.
$$ x_0 * \frac{1}{x_1} * \frac{1}{x_2} * … * \frac{1}{x_{n-2}} * \frac{1}{x_{n-1}} $$
Let us rewrite that using product notation, and define it as $D_n$.
$$ \begin{eqnarray} D_n &=& x_0 * \frac{1}{x_1} * \frac{1}{x_2} * … * \frac{1}{x_{n-2}} * \frac{1}{x_{n-1}}\\ &=& x_0 \prod\limits_{i=1}^{n-1}\frac{1}{x_i} \end{eqnarray} $$
That leads to…
$$ \begin{eqnarray} D_n^{*} &=& x_0^* \prod\limits_{i=1}^{n-1}\frac{1}{x_i^*} \\ &=& x_{0}(1+\epsilon_0) \prod\limits_{i=1}^{n-1}\frac{1}{x_i(1+\epsilon_i)} \end{eqnarray} $$
We need the relative error… Let us do some quick algebra with our $D$ terms (using the same steps from the repeated multiplication problem).
$$ \begin{eqnarray} relative\phantom{1}error &=& \Bigg|\frac{D_n^{*} - D_n}{D_n} \Bigg| \\ &=& \Bigg|\frac{D_n^{*}}{D_n} - 1 \Bigg| \\ \end{eqnarray} $$
If we focus on $\frac{D_n^*}{D_n}$…
$$ \begin{eqnarray} \frac{D_n^*}{D_n} &=& \frac{x_0(1 + \epsilon_0)\prod\limits_{i=1}^{n-1}\frac{1}{x_i(1 + \epsilon_i)}}{x_0\prod\limits_{i=1}^{n-1}\frac{1}{x_i}} \\ &=& \frac{x_0(1 + \epsilon_0)\prod\limits_{i=1}^{n-1}x_i} {x_0\prod\limits_{i=1}^{n-1}x_i(1 + \epsilon_i)}\\ &=& (1 + \epsilon_0)\prod\limits_{i=1}^{n-1}\frac{x_i} {x_i(1 + \epsilon_i)}\\ &=& (1 + \epsilon_0)\prod\limits_{i=1}^{n-1}\frac{1}{(1 + \epsilon_i)} \\ \end{eqnarray} $$
Let us plug that back into to original equation… and continue the evaluation.
$$ \begin{eqnarray} relative\phantom{1}error &=& \Bigg|\frac{D_n^{*} - D_n}{D_n} \Bigg| \\ &=& \Bigg|\frac{D_n^{*}}{D_n} - 1 \Bigg| \\ &=& \Bigg|(1 + \epsilon_0)\prod\limits_{i=1}^{n-1}\frac{1}{(1 + \epsilon_i)} - 1 \Bigg| \\ &=& \Bigg|(1 + \epsilon_0)\prod\limits_{i=1}^{n-1}\frac{1}{(1 + \epsilon_i)} - \frac{\prod\limits_{i=1}^{n-1}(1 + \epsilon_i)} {\prod\limits_{i=1}^{n-1}(1 + \epsilon_i)} \Bigg| \\ &=& \Bigg|\frac{(1 + \epsilon_0)}{\prod\limits_{i=1}^{n-1}(1 + \epsilon_i)} - \frac{\prod\limits_{i=1}^{n-1}(1 + \epsilon_i)} {\prod\limits_{i=1}^{n-1}(1 + \epsilon_i)} \Bigg| \\ &=& \Bigg|\frac{(1 + \epsilon_0) - \prod\limits_{i=1}^{n-1}(1 + \epsilon_i)} {\prod\limits_{i=1}^{n-1}(1 + \epsilon_i)} \Bigg| \\ \end{eqnarray} $$
Now I can reuse the result from repeated multiplication!
$$ \begin{eqnarray} relative\phantom{1}error &=& \Bigg|\frac{(1 + \epsilon_0) - \prod\limits_{i=1}^{n-1}(1 + \epsilon_i)} {\prod\limits_{i=1}^{n-1}(1 + \epsilon_i)} \Bigg| \\ &\approx& \Bigg|\frac{(1 + \epsilon_0) - 1 - \sum\limits_{i=1}^{n-1}\epsilon_i} {1 + \sum\limits_{i=1}^{n-1}\epsilon_i} \Bigg| \\ &=& \Bigg|\frac{\epsilon_0 - \sum\limits_{i=1}^{n-1}\epsilon_i} {1 + \sum\limits_{i=1}^{n-1}\epsilon_i} * \frac{1 - \sum\limits_{i=1}^{n-1}\epsilon_i} {1 - \sum\limits_{i=1}^{n-1}\epsilon_i} \Bigg| \\ \end{eqnarray} $$
There is quite a bit of algebra in the next step. Let us start with the denominator.
$$ \begin{eqnarray} \big(1 + \sum\limits_{i=1}^{n-1}\epsilon_i \big) * \big(1 - \sum\limits_{i=1}^{n-1}\epsilon_i \big) &=& 1 + \big(\sum\limits_{i=1}^{n-1}\epsilon_i \big) - \big(\sum\limits_{i=1}^{n-1}\epsilon_i \big) - \Big(\sum\limits_{i=1}^{n-1}\epsilon_i \Big)^2 \\ &=& 1 - \Big(\sum\limits_{i=1}^{n-1}\epsilon_i \Big)^2 \\ &\approx& 1 \end{eqnarray} $$
A denominator of $\approx 1$ simplifies things a little…
$$ \begin{eqnarray} relative\phantom{1}error &=& \Bigg|\frac{\epsilon_0 - \sum\limits_{i=1}^{n-1}\epsilon_i} {1 + \sum\limits_{i=1}^{n-1}\epsilon_i} * \frac{1 - \sum\limits_{i=1}^{n-1}\epsilon_i} {1 - \sum\limits_{i=1}^{n-1}\epsilon_i} \Bigg| \\ &\approx& \Bigg| \Big( \epsilon_0 - \sum\limits_{i=1}^{n-1}\epsilon_i \Big) * \Big( 1 - \sum\limits_{i=1}^{n-1}\epsilon_i \Big) \Bigg| \\ &=& \Bigg| \epsilon_0 - \Big(\epsilon_0 \sum\limits_{i=1}^{n-1}\epsilon_i \Big) - \Big(\sum\limits_{i=1}^{n-1}\epsilon_i \Big) + \Big(\sum\limits_{i=1}^{n-1}\epsilon_i \Big)^2 \Bigg| \\ &\approx& \Bigg| \epsilon_0 - \sum\limits_{i=1}^{n-1}\epsilon_i \Bigg| \\ \end{eqnarray} $$
This result mirrors our guess based on the results of $\frac{x^*}{y^*}$.