Page 148 - Compact Numerical Methods For Computers
P. 148

The generalised symmetric matrix eigenvalue problem    137
                      plane rotations. These post-multiply the current approximation to the vectors,
                      which is usually initialised to the unit matrix l . From (11.11a), however, we have
                                                             n
                                                           - 1
                                                      X = ZD Y                          (11.20)
                      where Y is the matrix of eigenvectors of A , and hence a product of plane
                                                               2
                      rotations. Therefore, by setting the initial approximation of the vectors to ZD - 1
                      when solving the eigenproblem (11.10) of A , it is not necessary to solve (11.11a)
                                                            2
                      explicitly, nor to save Z or D.
                        The form (2.63) is not the only generalised eigenproblem which may arise.
                       Several are discussed in Wilkinson and Reinsch (1971, pp 303-14). This treat-
                       ment is based mainly on the Choleski decomposition. Nash (1974) also uses a
                       Choleski-type decomposition for the generalised eigenproblem (2.63) in the case
                      where A and B are complex Hermitian matrices. This can be solved by ‘doubling-
                       up’ the matrices to give the real symmetric eigenproblem

                                                                                        (11.21)

                                               2
                      which therefore requires 12n  matrix elements to take the expanded matrices and
                       resulting eigenvectors. Nash (1974) shows how it may be solved using only
                         2
                       4n + 4n matrix elements.

                      Algorithm 15. Solution of a generalised matrix eigenvalue problem by two applications
                      of the Jacobi algorithm

                        procedure genevJac( n : integer; {order of problem}
                                         var A, B, V : rmatrix); {matrices and eigenvectors}
                        {alg15pas ==
                              To solve the generalized symmetric eigenvalue problem
                              Ax = eBx
                              where A and B are symmetric and B is positive-definite.
                        Method: Eigenvalue decomposition of B via Jacobi method to form the
                        ‘matrix square root’ B-half. The Jacobi method is applied a second time
                        to the matrix
                                 C = Bihalf A Bihalf
                        where Bihalf is the inverse of B-half. The eigenvectors x are the columns
                        of the matrix
                                 X = Bihalf V
                        where V is the matrix whose columns are the eigenvectors of matrix C.
                                         Copyright 1988 J.C.Nash
                        }
                        var
                           i,j,k,m : integer;
                           s : real;
                           initev : boolean;
                        begin {STEPS 0 and 1}
                           writeln(‘alg15.pas -- generalized symmetric matrix eigenproblem’);
                           initev := true; {to indicate eigenvectors must be initialized}
                           writeln(‘Eigensolutions of metric B’);
                           evJacobi(n, B, V, initev); {eigensolutions of B -- STEP 2}
   143   144   145   146   147   148   149   150   151   152   153