Preconditioning – HP 15c User Manual
Page 91
Section 4: Using Matrix Operations
91
If (LER)
−1
is verifiably poor, you can repeat the scaling, using LER in place of E and using
new scaling matrices suggested by LER and the calculated (LER)
−1
.
You can also apply scaling to solving a system of equations, for example EX = B, where E is
poorly scaled. When solving for X, replace the system EX = B by a system (LER)Y = LB to
be solved for Y. The diagonal scaling matrices L and R are chosen as before to make the
matrix LER well-scaled. After you calculate Y from the new system, calculate the desired
solution as X = RY.
Preconditioning
Preconditioning is another method by which you can replace a difficult system, EX = B, by
an easier one, AX = D, with the same solution X.
Suppose that E is ill-conditioned (nearly singular). You can detect this by calculating the
inverse E
−1
and observing that 1/||E
−1
|| is very small compared to ||E|| (or equivalently by a
large condition number K(E)). Then almost every row vector u
T
will have the property that
||u
T
||/||u
T
E
−1
|| is also very small compared with ||E||, where E
−1
is the calculated inverse. This
is because most row vectors u
T
will have ||u
T
E
−1
|| not much smaller than ||u
T
|| ||E
−1
||, and
||E
−1
|| will be large. Choose such a row vector u
T
and calculate v
T
= au
T
E
−1
. Choose the scalar
a so that the row vector r
T
, obtained by rounding every element of v
T
to an integer between
−100 and 100, does not differ much from v
T
. Then r
T
is a row vector with integer elements
with magnitudes less than 100. ||r
T
E|| will be small compared with ||r
T
|| ||E||—the smaller the
better.
Next, choose the kth element of r
T
having one of the largest magnitudes. Replace the kth row
of E by r
T
E and the kth row of B by r
T
B. Provided that no roundoff has occurred during the
evaluation of these new rows, the new system matrix A should be better conditioned (farther
from singular) than E was, but the system will still have the same solution X as before.
This process works best when E and A are both scaled so that every row of E and of A have
roughly the same norm as every other. You can do this by multiplying the rows of the
systems of equations EX = B and AX = D by suitable powers of 10. If A is not far enough
from singular, though well scaled, repeat the preconditioning process.
As an illustration of the preconditioning process, consider the system EX = B, where
0
0
0
0
1
,
B
E
x
y
y
y
y
y
x
y
y
y
y
y
x
y
y
y
y
y
x
y
y
y
y
y
x
and x = 8000.00002 and y = −1999.99998. If you attempt to solve this system directly, the
HP-15C calculates the solution X and the inverse E
−1
to be