Page 157 - Matrices theory and applications
P. 157

8. Matrix Factorizations
                              140
                              8.1.2 Complexity of Matrix Inversion
                              We can now show that the complexity of inverting a matrix is not higher
                              than that of matrix multiplication, at equivalent sizes. We assume here that
                              k = IR or CC.
                              Notation 8.1.1 We denote by J n the number of operations in k used in
                              the inversion of an n × n matrix, and by P n the number of operations (in
                              k) used in the product of two n × n matrices.
                                Of course, the number J n must be understood for generic matrices, that
                              is, for matrices within a dense open subset of M n (k). More important,
                              J n ,P n also depend on the algorithm chosen for inversion or for multipli-
                              cation. In the sequel we wish to adapt the inversion algorithm to the one
                              used for multiplication.
                                                                                          k
                                Let us examine first of all the matrices whose size n has the form 2 .
                                We decompose the matrices M ∈ GL n (k) blockwise, with blocks of size
                              n/2 × n/2. The condition A ∈ GL n/2 (k) defines a dense open set, since
                              M  → det A is a nonzero polynomial. Suppose that we are given an inver-
                              sion algorithm for generic matrices in GL n/2 (k)in j k−1 operations. Then
                              blockwise LU factorization and the formula M −1  = U −1 L −1  furnish an
                              inversion algorithm for generic matrices in GL n (k). We can then bound
                              j k by means of j k−1 and the number π k−1 = P 2 k−1 of operations used in
                              the computation of the product of two matrices of size 2 k−1  × 2 k−1 .We
                              shall denote also by σ k =2 2k  the number of operations involved in the
                              computation of the sum of matrices in M k(k).
                                                                  2
                                To compute M −1 , we first compute A −1 ,then CA −1 ,which gives us
                              L −1  in j k−1 + π k−1 operations. Then we compute (D − CA −1 B) −1  (this
                              amounts to σ k−1 + π k−1 + j k−1 operations) and A −1 B(D − CA −1 B) −1
                              (cost: 2π k−1 ), which furnishes U −1 . The computation of U  −1 L −1  is done
                              at the cost σ k−1 +2π k−1 . Finally,

                                                  j k ≤ 2j k−1 +2σ k−1 +6π k−1 .
                              In other words,
                                            2 −k j k − 2 1−k j k−1 ≤ 2 k−1  +3 · 2 1−k π k−1 .  (8.1)
                                The complexity of the product in M n (k) obeys the inequalities
                                                               2
                                                     2
                                                    n ≤ P n ≤ n (2n − 1).
                                                                             2
                              The first inequality is due to the number of data (2n ) and the fact that
                              each operation involves only two of them. The second is given by the naive
                                                                2
                              algorithm that consists in computing n scalar products.
                              Lemma 8.1.1 If P n ≤ c α n α  (with 2 ≤ α ≤ 3), then j l ≤ C α π l ,where
                              C α =1 + 3c α /(2 α−1  − 1).
                                It is enough to sum (8.1) from k =1 to l and use the inequality 1 + q +
                                          l
                              ··· + q l−1  ≤ q /(q − 1) for q> 1.
   152   153   154   155   156   157   158   159   160   161   162