The Residual Correction Method (RCM) [8] is a numerically stable way of solving for the unknown vector x in equation (1). In RCM the A matrix is partitioned into well conditioned submatrices which are then inverted separately. The well conditioned submatrices exist due to the geometry of the problem and the way in which the basis functions are constructed. RCM iterates through the submatrices, using the residual vector from the previous iteration as the new data vector. In this way, an approximate solution is first obtained then improved as the iteration continues. In addition, the submatrices can be chosen so that the rate of convergence is accelerated during the first few iterations.
Suppose there are P vertical basis functions, Q horizontal basis
functions, and T data points. Then the system matrix A is
and contains a row for each data point (TEC value) and a
column for each basis function. Let the columns of A be ordered so
that all the basis functions containing the first vertical basis
function come first, followed by all the basis functions containing
the second vertical basis function, etc. The matrix A and vector
x can then be partitioned as
Since each of the submatrices of A contain the columns corresponding to only one vertical basis function, when the submatrices are considered separately the problem reduces from one two-dimensional reconstruction to a set of one-dimensional reconstructions. Each one of the one-dimensional reconstructions is much easier than the complete reconstruction, because each one-dimensional reconstruction solves only for the horizontal component.
Define the generalized inverses of the submatrices as
Then the RCM algorithm is initialized using
The vector
is the initial solution vector, and the vector
is the initial residual vector. The algorithm proceeds by
iterating through
where the subscripts on A and x are interpreted modulo P.
Equation (7) calculates a correction to the solution
based on one submatrix of A. Equation (8) adds the
correction to the solution vector, and equation (9)
adjusts the residual vector to reflect the new solution. Each
iteration of (7), (8) and
(9) will be called a subiteration, and a set of P
iterations, where P is the number of vertical basis functions, will
be called an iteration. The magnitude of the residual vector
is reduced at each subiteration, and the iteration is halted
when the magnitude of
is decreasing at a sufficiently slow
rate. RCM converges to a least squares solution, though not
necessarily the minimum norm least squares solution.
The RCM algorithm can be written in a more compact form. Equations (7) and (8) can be combined and written in terms of the vector x as follows:
Then define
Also, the residual vector can be written as
Combining (10), (11), and (12), the complete iteration can be written as
where the subscript on B is interpreted modulo P. The algorithm is initialized using (5) and (6) in the same way as before.