Numerical Analysis/Loss of Significance

< Numerical Analysis

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

f(x)=\sqrt{x^2+1}-1

as x approaches 0. Evaluating this function at x=1.89\times 10^{-9} 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 x>y and

2^{-q}\le1-{y\over x}\le2^{-p}\,,

 

 

 

 

(bound )

then at most q and at least p significant binary bits are lost in the subtraction x-y.

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

Exercise 1

Use 2^{-q}\le1-{y\over x}\le2^{-p} 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 f(x)=\sqrt{x^2+1}-1.

Exercise 2

Use 2^{-q}\le1-{y\over x}\le2^{-p} to find a lower bound on the input x if one desires to lose at most 3 significant binary bits in the calculation of f(x)=\sqrt{x^2+1}-1.

Exercise 3

Consider

f(x)=\sqrt{x^{2}+1}-x\,.

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

Now consider the function

f(x)=\log(x+1)-\log(x)\,.

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

In w:Numerical differentiation, the w:Finite difference

f'(x)\approx{f(x+h)-f(x)\over h}

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 {f(x+h)-f(x)\over h}, find a bound on h such that at most 1 binary bit will be lost in the calculation.

Exercise 6

For {f(x+h)-f(x)\over h}, find a bound on h such that at most 1 binary bit will be lost in the calculation, if f(x)=x^{2}.

Exercise 7

Rewrite f(x)=\sqrt{x^2+1}-1 so that there is no loss of significance, then evaluate it at x=1.89\times 10^{-9}.

Exercise 8

Rewrite f(x)=\log(x+1)-\log(x) so that loss of significance will be minimized.

Exercise 9

For very small values of x, loss of significance can occur in f(x)={1-x\over 1+x}-{1\over 3x+1}. Rewrite this function in a way that will minimize loss of significance.

Exercise 10

As x gets close to zero, loss of significance can occur in f(x)=\frac{1-\cos(x)}{\sin(x)}. Rewrite this function in a way that will minimize loss of significance.

This article is issued from Wikiversity - version of the Saturday, April 02, 2016. The text is available under the Creative Commons Attribution/Share Alike but additional terms may apply for the media files.