Developer Reference

  • 2021.1
  • 12/04/2020
  • Public Content
Contents

Error Analysis

In practice, most computations are performed with rounding errors. Besides, you often need to solve a system
Ax
=
b
, where the data (the elements of
A
and
b
) are not known exactly. Therefore, it is important to understand how the data errors and rounding errors can affect the solution
x
.
Data perturbations.
If
x
is the exact solution of
Ax
=
b
, and
x
+
δ
x
is the exact solution of a perturbed problem
(
A
+
δ
A
)(
x
+
δ
x
) = (
b
+
δ
b
)
, then this estimate, given up to linear terms of perturbations, holds:
Equation
where
A
+
δ
A
is nonsingular and
Equation
In other words, relative errors in
A
or
b
may be amplified in the solution vector
x
by a factor
κ
(
A
) = ||
A
|| ||
A
-1
||
called the condition number of
A
.
Rounding errors
have the same effect as relative perturbations
c
(
n
)
ε
in the original data. Here
ε
is the machine precision, defined as the smallest positive number
x
such that 1 +
x
> 1; and
c
(
n
)
is a modest function of the matrix order
n
. The corresponding solution error is
||
δ
x
||/||
x
||
c
(
n
)
κ
(
A
)
ε
. (The value of
c
(
n
)
is seldom greater than 10
n
.)
Machine precision depends on the data type used.
For example, it is usually defined in the
float.h
file as
FLT_EPSILON
the
float
datatype and
DBL_EPSILON
for the
double
datatype.
Thus, if your matrix
A
is ill-conditioned (that is, its condition number
κ
(
A
)
is very large), then the error in the solution
x
can also be large; you might even encounter a complete loss of precision. LAPACK provides routines that allow you to estimate
κ
(
A
)
(see Routines for Estimating the Condition Number) and also give you a more precise estimate for the actual solution error (see Refining the Solution and Estimating Its Error).

Product and Performance Information

1

Performance varies by use, configuration and other factors. Learn more at www.Intel.com/PerformanceIndex.