Download sychom.eso

Back to the list

   1 : C SYCHOM    SOURCE    CHAT      05/01/13    03:28:37     5004           
   2 :        SUBROUTINE SYCHOM(ZMAT,IMAX)
   3 : C
   4 : C Résolution de l'équation matricielle C = L D LT
   5 : C par la méthode de CHOlesky Modifiée
   6 : C    C  : Matrice symétrique définie positive
   7 : C    L  : Matrice triangulaire inférieure de diagonale unité
   8 : C    D  : Matrice diagonale
   9 : C    LT : Matrice transposée de L
  10 : C
  11 :       IMPLICIT INTEGER(I-N)
  12 :        IMPLICIT REAL*8 (A-H,O-Z)
  13 : C
  14 :        DIMENSION ZMAT(IMAX,IMAX)
  15 : C
  16 : C Calcul de ZMAT
  17 : C factorisation de C sous la forme Z LT
  18 : C avec Z = L D
  19 : C On récupère en sortie dans le tableau ZMAT modifié
  20 : C la matrice M = L SQRT(D) telle que M MT = C
  21 : C
  22 :        DIV = ZMAT(2,1) / ZMAT(1,1)
  23 :        ZMAT(2,2) = ZMAT(2,2) - DIV*ZMAT(2,1)
  24 :        ZMAT(2,1) = DIV
  25 :        DIV = 0.D0
  26 : C
  27 :        DO 1 I=3,IMAX
  28 : C
  29 :          DO 2 J=2,(I-1)
  30 :            DO 3 K=1,(J-1)
  31 :              ZMAT(I,J) = ZMAT(I,J) - ZMAT(I,K) * ZMAT(J,K)
  32 :  3         CONTINUE
  33 :  2       CONTINUE
  34 : C
  35 :          DO 4 J=1,(I-1)
  36 :            DIV =  ZMAT(I,J) / ZMAT(J,J)
  37 :            ZMAT(I,I) = ZMAT(I,I) - DIV*ZMAT(I,J)
  38 :            ZMAT(I,J) = DIV
  39 :  4       CONTINUE
  40 :  1     CONTINUE
  41 : C              
  42 :        DO 5 J=1,(IMAX-1)
  43 :          ZMAT(J,J) = SQRT(ZMAT(J,J))
  44 :          DO 6 I=J+1,IMAX
  45 :             ZMAT(I,J) = ZMAT(I,J) * ZMAT(J,J)
  46 :  6       CONTINUE
  47 :  5     CONTINUE
  48 :        ZMAT(IMAX,IMAX) = SQRT(ZMAT(IMAX,IMAX))
  49 : C                         
  50 :        END
  51 :  
  52 :  

© Cast3M 2003 - All rights reserved.
Disclaimer