next previous
Up: Efficient implementations of

2. Implementations of the SOLA method

 

In the following we summarize the SOLA method. The first step is to introduce a proper matrix formulation of the problem. Assume that the data-errors tex2html_wrap_inline2653 are described by the covariance matrix tex2html_wrap_inline2655 and that tex2html_wrap_inline2657 has a lower triangular Cholesky factor tex2html_wrap_inline2659, such that tex2html_wrap_inline2661. In case the data are uncorrelated with equal variance, tex2html_wrap_inline2663 will be a scalar times the identity matrix. If the statistics of the data are unknown it is common to set tex2html_wrap_inline2665 equal to the identity. Also assume that we use a quadrature rule with weights tex2html_wrap_inline2667 on the grid tex2html_wrap_inline2669, tex2html_wrap_inline2671 to compute the necessary integrals, i.e.,
eqnarray356
We now define the tex2html_wrap_inline2673 matrix tex2html_wrap_inline2675,
eqnarray360
To express the integrals involved we define the tex2html_wrap_inline2677 diagonal matrix tex2html_wrap_inline2679 with diagonal elements
eqnarray363
Finally we introduce the three n-vectors tex2html_wrap_inline2683, tex2html_wrap_inline2685 with elements tex2html_wrap_inline2687, tex2html_wrap_inline2689 and tex2html_wrap_inline2691 with elements tex2html_wrap_inline2693, tex2html_wrap_inline2695.

Now we can write the discretized version of expression (8 (click here)) subject to the constraint in Eq. (5 (click here)): tex2html_wrap_inline2697 is given as the solution to
 eqnarray370
and we obtain the discretized version of the averaging kernel as
 equation374
The kernels tex2html_wrap_inline2699 are often nearly linearly dependent, and consequently the same holds for the rows of tex2html_wrap_inline2701 which are ``samples'' of the kernels. Therefore the matrix tex2html_wrap_inline2703 is usually very ill-conditioned, and this motivates the additional regularization term tex2html_wrap_inline2705 in Eq. (9 (click here)).

Typically the number of kernels m is much larger than the number of points n in the discretization. This means that the system of equations in Eq. (9 (click here)) is under-determined if tex2html_wrap_inline2711. Only when we include the statistical information about the data, represented in the covariance matrix tex2html_wrap_inline2713, to regularize the problem, do we obtain a unique solution. A convenient way to incorporate the statistical information into the least squares problem is to work with the transformed matrix tex2html_wrap_inline2715 and right-hand side tex2html_wrap_inline2717, where tex2html_wrap_inline2719 is the Cholesky factor of tex2html_wrap_inline2721, and the covariance for the errors in tex2html_wrap_inline2723 is now the identity matrix and the variance of the error in tex2html_wrap_inline2725 due to the noise is simply tex2html_wrap_inline2727. To simplify our presentation, we assume that this transformation to unit covariance form is applied to the data before the SOLA method is applied.

In the following we will describe different algorithms for solving Eq. (9 (click here)). In Sect. 2.1 (click here) we describe the algorithm suggested in , Pijpers & Thompson (1992, 1994). As we show in Sect. 2.2 (click here), another possibility is to reduce Eq. (9 (click here)) to a standard unconstrained regularized least squares problem, using the method proposed in Lawson & Hanson (1974), Chap. 20. For the unconstrained least squares problem a variety of efficient regularization methods are available; see, e.g., the survey in Hanke & Hansen (1993). As we will demonstrate, the latter approach is superior in terms of computational efficiency, especially when many values of tex2html_wrap_inline2729 are needed. We also discuss an iterative algorithm which is useful when tex2html_wrap_inline2731 is either sparse or structured.

In the derivation of the algorithms below we have restricted ourselves to the case where the estimate of f is computed for a single point tex2html_wrap_inline2735. The extension of the algorithms to multiple points is trivial and is given in the summaries at the end of each section. Finally we note that we measure the work associated with the algorithms by the number of floating point operations (flops) used. A ``flop'' is a simple arithmetic operation such as a floating point multiplication or addition.

2.1. SOLA algorithm using a Lagrange multiplier

 

The standard solution procedure, which is the one used in Pijpers &\ Thompson (1992), incorporates the constraint using a Lagrange multiplier and solves the augmented normal equations of (9 (click here)). This means solving the system
 equation394
where tex2html_wrap_inline2817 is the Lagrange multiplier. This approach has several disadvantages:

A solution to the last problem is to apply the Bunch-Kaufman algorithm for symmetric indefinite systems, which computes an tex2html_wrap_inline2823 factorization using diagonal pivoting (see, e.g., Sects. 4.4.4-5 in Golub & Van Loan 1989), requiring tex2html_wrap_inline2825 flops, the same as the usual Cholesky factorization.

To avoid forming the large system of normal equations, it has been suggested by Christensen-Dalsgaard & Thompson (1993) to reduce the dimension of the system by first computing an SVD of the kernel matrix tex2html_wrap_inline2827:
 equation407
where tex2html_wrap_inline2831 and tex2html_wrap_inline2833. Then one switches to a system that uses the transformed quantities:
eqnarray412
Working with tex2html_wrap_inline2837 and tex2html_wrap_inline2839 instead of tex2html_wrap_inline2841 and tex2html_wrap_inline2843 reduces the computational effort by a factor of tex2html_wrap_inline2845. Now the most expensive part is the computation of tex2html_wrap_inline2847 and tex2html_wrap_inline2849 of the SVD which requires tex2html_wrap_inline2851 flops (note that tex2html_wrap_inline2853 is not computed explicitly; tex2html_wrap_inline2855 is computed ``on the fly''). Details on how to compute the SVD are given in, e.g., Golub & Van Loan (1989).

The algorithm, which is summarized below, describes the general case where tex2html_wrap_inline2857 is computed at points tex2html_wrap_inline2859. The matrix tex2html_wrap_inline2861 below is the matrix whose columns contain ``samples'' of the q target function: tex2html_wrap_inline2865, tex2html_wrap_inline2867, tex2html_wrap_inline2869.


next previous
Up: Efficient implementations of

Copyright by the European Southern Observatory (ESO)
web@ed-phys.fr