Appendix:
Accuracy
of
Numerical Calculations
187
Backward
Error
Analysis
Until
the
late
1950's,
most computer experts inclined
to
paranoia
in
their assessments
of the
damage done
to
numerical computations
by
rounding errors.
To
justify
their paranoia, they could cite
published
error analyses like
the one
from
which
a
famous
scientist
concluded
that
matrices
as
large
as 40 X 40
were almost certainly
impossible
to
invert numerically
in the
face
of
roundoff.
However,
by
the mid
1960's
matrices
as
large
as 100 X 100
were being
inverted
routinely,
and
nowadays equations with hundreds
of
thousands
of
unknowns
are
being solved during geodetic
calculations worldwide.
How can we
reconcile these accomplish-
ments with
the
fact
that
that
famous
scientist's
mathematical
analysis
was
quite correct?
We
understand better
now
than
then
why
different formulas
to
calculate
the
same result might
differ
utterly
in
their
degradation
by
rounding errors.
For
instance,
we
understand
why the
normal
equations belonging
to
certain least-squares problems
can be
solved
only
in
arithmetic carrying extravagantly
high
precision;
this
is
what
that
famous scientist actually proved.
We
also know
new
procedures (one
is
presented
on
page 140)
that
can
solve
the
same least-squares problems without carrying much more
precision
than
suffices
to
represent
the
data.
The new and
better
numerical
procedures
are not
obvious,
and
might never have been
found
but for new and
better techniques
of
error
analysis
by
which
we
have learned
to
distinguish formulas
that
are
hypersensitive
to
rounding errors
from
formulas
that
aren't.
One of the new (in
1957)
techniques
is now
called "backward error
analysis,"
and you
have
already seen
it in
action twice: first,
it
explained
why the
procedure
that
calculates
\(x)
is
accurate enough
to
dispel
the
inaccuracy
in
example
2;
next,
it
explained
why the
calculator's
[TRicf!
functions
very
nearly satisfy
the
same identities
as are
satisfied
by
trig
functions
even
for
huge radian arguments
x at
which
[TRIG
\(x)
and
trig(x)
can be
very
different.
The
following
paragraphs
explain
backward
error analysis itself
in
general terms.
Consider
some system
F
intended
to
transform
an
input
x
into
an
output
y
=
f(x).
For
instance,
F
could
be a
signal
amplifier,
a
filter,
a
transducer,
a
control system,
a
refinery,
a
country's economy,
a
computer
program,
or a
calculator.
The
input
and
output need
not
be
numbers; they could
be
sets
of
numbers
or
matrices
or
anything
else
quantitative.
Were
the
input
x to be
contaminated
by
noise
Ax,