Page 102 - Compact Numerical Methods For Computers
P. 102

The Choleski decomposition                   91
                     finding seemed to be reversed, probably because these latter machines are run as
                      interpreters, that is, they evaluate the code as they encounter it in a form of
                     simultaneous translation into machine instructions whereas a compiler makes the
                     translation first then discards the source code. The Healy and Price routines most
                     likely are slowed down by the manner in which their looping is organised,
                     requiring a backward jump in the program. On a system which interprets, this is
                      likely to require a scan of the program until the appropriate label is found in the
                      code and it is my opinion that this is the reason for the more rapid execution of
                      algorithm 7 in interpreter environments. Such examples as these serve as a
                      warning that programs do show very large changes in their relative, as well as
                      absolute, performance depending on the hardware and software environment in
                      which they are run.
                        Algorithm 7 computes the triangular factor L column by column. Row-by-row
                      development is also possible, as are a variety of sequential schemes which perform
                      the central subtraction in STEP 4 in piecemeal fashion. If double-precision arith-
                      metic is possible, the forms of the Choleski decomposition which compute the
                      right-hand side of (7.8) via a single accumulation as in algorithm 7 have the
                      advantage of incurring a much smaller rounding error.



                      Example 7.1. The Choleski decomposition of the Moler matrix
                      The Moler matrix, given by

                                            A  = min(i, j) – 2  for i  j
                                             ij
                                            A  = i
                                             ii

                      has the decomposition
                                                      A = LL T

                      where
                                                     0       for j > i

                                             L ij  =  1      for i = j
                                                      -1     for j < i.

                      Note that this is easily verified since


                                                                          for i j
                                                                          for i = j.
                      On a Data General NOVA operating in arithmetic having six hexadecimal digits
                                                    -5
                      (that is, a machine precision of 16 ) the correct decomposition was observed for
                      Moler matrices of order 5, 10, 15, 20 and 40. Thus for order 5, the Moler matrix
   97   98   99   100   101   102   103   104   105   106   107