1 04
Section
4:
Using Matrix
Operations
X,
in
error
by E
—
X
—
Z.
Then
E
satisfies
the
linear
system
AE =
AX
—
AZ = R,
where
R is the
residual
for Z. The
next step
is to
calculate
the
residual
and
then
to
solve
AE = R for E. The
calculated solution, denoted
by F, is
treated
as an
approximation
to
E = X
—
Z and is
added
to Z to
obtain
a new
approximation
to X:
F
+
Z
«
(X
-
Z)
+
Z = X.
In
order
for F + Z to be a
better approximation
to X
than
is Z, the
residual
R = B
—
AZ
must
be
calculated
to
extended precision.
The
HP-ISO's
|
MATRIX
| 6
operation does
this.
The
system matrix
A is
used
for
finding both
solutions,
Z and F. The LU
decomposition
formed
while calculating
Z can be
used
for
calculating
F,
thereby
shortening
the
execution time.
The
refinement process
can be
repeated,
but
most
of the
improvement occurs
in the
first
refinement.
(Refer
to
Applications
at the end of
this
section
for a
program
that
performs
one
iteration
of
refinement.)
Making Difficult Equations Easier
A
system
of
equations
EX — B is
difficult
to
numerically solve
accurately
if E is
ill-conditioned (nearly singular). Even iterative
refinement
can
fail
to
improve
the
calculated
solution when
E is
sufficiently
ill-conditioned. However,
instances
arise
in
practice when
a
modest extra
effort
suffices
to
change
difficult
equations into others
with
the
same solution,
but
which
are
easier
to
solve. Scaling
and
preconditioning
are two
processes
to do
this.
Scaling
Bad
scaling
is a
common cause
of
poor results
from
attempts
to
numerically invert ill-conditioned matrices
or to
solve systems
of
equations with ill-conditioned system matrices.
But it is a
cause
that
you can
easily diagnose
and
cure.
Suppose
a
matrix
E is
obtained
from
a
matrix
A by E =
LAR,
where
L and R are
scaling diagonal matrices whose diagonal
elements
are all
integer powers
of 10.
Then
E is
said
to be
obtained
from
A by
scaling.
L
scales
the
rows
of A, and R
scales
the
columns.
Presumably
E"1
=
R"1A"1L"1
can be
obtained either
from
A"1
by
scaling
or
from
E by
inverting.