Numerical Analysis/Loss of Significance

Loss of significance occurs in numerical calculations when too many significant digits cancel. As a result of the floating point arithmetic used by computers, when a number is subtracted from another number that is almost exactly the same, catastrophic cancellation may occur and an erroneous value returned. As an example, consider the behavior of

as x approaches 0. Evaluating this function at using Matlab incorrectly returns the answer 0, which shows that too many significant digits have cancelled.

If x and y are positive, normalized floating point binary numbers such that and

 

 

 

 

(bound)

then at most and at least significant binary bits are lost in the subtraction .

On this page we will consider several exercises/examples of using this formula and show how sometimes we can rearrange the calculation to reduce loss of significance. Please try the exercise yourself before revealing the solution.

Exercises edit

Exercise 1 edit

Use   to find a lower bound on the input x if one desires to lose no more than 1 significant binary bit in the calculation of  .

Exercise 2 edit

Use   to find a lower bound on the input x if one desires to lose at most 3 significant binary bits in the calculation of  .

Exercise 3 edit

Consider

 

As x gets very large, loss of significance can occur. What is the bound on x if we want to lose no more than one binary digit?

Exercise 4 edit

Now consider the function

 

For large values of x, loss of significance may occur.

Use (bound) to find a bound on the input so that at most 1 significant binary bit will be lost in the calculation.

Exercise 5 edit

In w:Numerical differentiation, the w:Finite difference

 

is often used to approximate derivatives. w:Truncation error can be reduced by decreasing "h", the step size, but if h becomes too small, loss of significance can become a factor. For  , find a bound on h such that at most 1 binary bit will be lost in the calculation.

Exercise 6 edit

For  , find a bound on h such that at most 1 binary bit will be lost in the calculation, if  .

Exercise 7 edit

Rewrite   so that there is no loss of significance, then evaluate it at  .

Exercise 8 edit

Rewrite   so that loss of significance will be minimized.

Exercise 9 edit

For very small values of x, loss of significance can occur in  . Rewrite this function in a way that will minimize loss of significance.

Exercise 10 edit

As x gets close to zero, loss of significance can occur in  . Rewrite this function in a way that will minimize loss of significance.