Computation of the generalised inverse A^+ and rank of an arbitrary (including singular and rectangular) matrix A has many applications. This paper derives an iterative scheme to approximate the generalised inverse which can be expressed in the form of successive squaring of a composite matrix T. Given an m by n matrix A with m~n, we show that the generalised inverse of A can be computed in parallel time ranging from O(log n) to O(log^2n), similar to previous methods. The rank of matrix A is obtained along with the generalised inverse. The successive matrix squaring algorithm is generalised to higher-order schemes, where the composite matrix is repeatedly raised to an integer power l>2. This form of expression leads to a simplified notation compared with that of earlier methods, and helps to clarify the relationship between l, the order of the iterative scheme and K, the number of iterations. In particular, the accuracy achieved in approximating A^+ is a function only of the magnitude of l^K and does not depend on the particular values chosen for l and K; we argue that there is no obvious advantage in choosing l other than 2. Our derived error bound for the approximation to A^+ is tighter than that previously established. The same bound applies to the rank. Numerical experiments with different test matrices (square, rectangular, complex, singular, etc.) illustrate the method. They further demonstrate that our tighter error bound provides a useful guide to the number of iterations required. In the examples given, the specified accuracy was achieved after the calculated number of iterations, but no earlier. Implementation studies on a general-purpose parallel machine (CM-5) demonstrated a smaller than expected penalty for direct squaring of matrix T in comparison with multiplication of its component block matrices. For special-purpose VLSI architectures, the simple structure of the matrix squaring algorithm leads to a straightforward parallel implementation with low communication overheads.
[1]
Victor Y. Pan,et al.
Complexity of Parallel Matrix Computations
,
1987,
Theor. Comput. Sci..
[2]
L. Csanky,et al.
Fast Parallel Matrix Inversion Algorithms
,
1976,
SIAM J. Comput..
[3]
Mauro Leoncini,et al.
Repeated Matrix Squaring for the Parallel Solution of Linear Systems
,
1992,
PARLE.
[4]
Victor Y. Pan,et al.
Fast and efficient parallel solution of dense linear systems
,
1989
.
[5]
Adi Ben-Israel,et al.
An iterative method for computing the generalized inverse of an arbitrary matrix
,
1965
.
[6]
J. Boot,et al.
The Computation of the Generalized Inverse of singular or Rectangular Matrices
,
1963
.
[7]
Bruno Codenotti,et al.
A Monte Carlo method for the parallel solution of linear systems
,
1989,
J. Complex..
[8]
W. Petryshyn,et al.
On generalized inverses and on the uniform convergence of (I − βK)n with application to iterative methods
,
1967
.
[9]
Stephen A. Cook,et al.
A Taxonomy of Problems with Fast Parallel Algorithms
,
1985,
Inf. Control..
[10]
R. Penrose.
A Generalized inverse for matrices
,
1955
.
[11]
Joachim von zur Gathen,et al.
Parallel Arithmetic Computations: A Survey
,
1986,
MFCS.
[12]
Franco P. Preparata.
Inverting a Vandermonde Matrix in Minimum Parallel Time
,
1991,
Inf. Process. Lett..
[13]
Bruno Codenotti.
Parallel solution of linear systems by repeated squaring
,
1990
.
[14]
J. Meyer.
Generalized Inverses (Theory And Applications) (Adi Ben-Israel and Thomas N. E. Greville)
,
1976
.
[15]
L. D. Pyle,et al.
Generalized Inverse Computations Using the Gradient Projection Method
,
1964,
JACM.