Is backward error analysis a good idea – HP 15c User Manual

Page 171

Advertising
background image

Appendix: Accuracy of Numerical Calculations

171

Of course, none of these horrible things could happen if X were not so nearly singular.
Because ||X|| ||X

-1

|| > 10

10

, a change in X amounting to less than one unit in the 10th

significant digit of ||X|| could make X singular; such a change might replace one of the
diagonal elements 0.00002 of X by zero. Since X is so nearly singular, the accuracy ⁄(X)
in this case rather exceeds what might be expected in general. What makes this example
special is bad scaling; X was obtained from an unexceptional matrix

2

5

0

0

0

000003

5

2

0

0

10

5

4

000003

5

5

0

10

5

4

000003

5

5

0

2

~

12

12

.

.

.

.

.

.

.

.

.

.

X

by multiplying each row and each column by a carefully chosen power of 10. Compensatory
division of the columns and rows of the equally unexceptional matrix

1923076923

0

0

0

0

4807695192

0

5

0

0

0

4807698077

0

000003

5

2

0

0

5

0

5

0

~

1

.

.

.

.

.

.

q

p

.

.

-

X

yielded X

-1

, with p = q = 0. The HP-15C calculates ⁄(

X

~

) =

X

~

-1

except that q = 0 is

replaced by q = 9.6×10

-11

, a negligible change. This illustrates how drastically the perceived

quality of computed results can be altered by scaling. (Refer to section 4 for more
information about scaling.)

Is Backward Error Analysis a Good Idea?

The only good thing to be said for backward error analysis is that it explains internal errors in
a way that liberates a system's user from having to know about internal details of the system.
Given two tolerances, one upon the input noise and one upon the output noise δf, the user
can analyze the consequences of internal noise In

F(x) = (f + δf) (x + δx)

by studying the noise propagation properties of the ideal system f without further reference to
the possibly complex internal structure of F.

But backward error analysis is no panacea; it may explain errors but not excuse them.
Because it complicates computations involving singularities, we have tried to eliminate the
need for it wherever we could. If we knew how to eliminate the need for backward error
analysis from every function built into the calculator, and to do so at tolerable cost, we would
do that and simplify life for everyone. That simplicity would cost too much speed and
memory for today's technology. The next example will illustrate the trade-offs involved.

Advertising