Télécharger invere.eso

Retour à la liste

Numérotation des lignes :

  1. C INVERE SOURCE CHAT 05/01/13 00:42:45 5004
  2. SUBROUTINE INVERE(VP,N,IVP,K,DET)
  3. C******************************************************************************
  4. C INVERSION D'UNE MATRICE NON SYMETRIQUE AVEC RECHERCHE DE PIVOT NON NUL
  5. C SUR UNE COLONNE
  6. C ENTREES
  7. C VP MATRICE A INVERSER
  8. C N ORDRE DE LA MATRICE A INVERSER
  9. C IVP DIMENSION DE LA MATRICE DANS LE PROGRAMME D'APPEL
  10. C K VECTEUR DE TRAVAIL ENTIER DE LONGUEUR N
  11. C SORTIES
  12. C VP MATRICE INVERSEE
  13. C DET DETERMINANT
  14. C******************************************************************************
  15. IMPLICIT INTEGER(I-N)
  16. IMPLICIT REAL*8 (A-H,O-Z)
  17. DIMENSION VP(IVP,IVP),K(N)
  18. DATA ZERO/0.D0/,UN/1.D0/,EPS/1.D-13/
  19. C******************************************************************************
  20. DET=UN
  21. DO 5 I=1,N
  22. 5 K(I)=I
  23. C****************DEBUT DE L'INVERSION
  24. DO 80 II=1,N
  25. C****************RECHERCHE D'UN PIVOT NON NUL SUR LA COLONNE II
  26. DO 10 I=II,N
  27. PIV=VP(I,II)
  28. IF(ABS(PIV).GT.EPS) GOTO 20
  29. 10 CONTINUE
  30. RETURN
  31. C****************ECHANGER LA LIGNE II ET LA LIGNE I
  32. 20 DET=DET*PIV
  33. IF(I.EQ.II) GOTO 40
  34. I1=K(II)
  35. K(II)=K(I)
  36. K(I)=I1
  37. DO 30 J=1,N
  38. C=VP(I,J)
  39. VP(I,J)=VP(II,J)
  40. 30 VP(II,J)=C
  41. C****************NORMALISATION DE LA LIGNE DU PIVOT
  42. 40 C=UN/PIV
  43. VP(II,II)=UN
  44. DO 50 J=1,N
  45. 50 VP(II,J)=VP(II,J)*C
  46. C****************ELIMINATION
  47. DO 70 I=1,N
  48. IF(I.EQ.II) GOTO 70
  49. C=VP(I,II)
  50. VP(I,II)=ZERO
  51. DO 60 J=1,N
  52. 60 VP(I,J)=VP(I,J)-C*VP(II,J)
  53. 70 CONTINUE
  54. 80 CONTINUE
  55. C****************REORDONNER LES COLONNES DE L'INVERSE
  56. DO 120 J=1,N
  57. C****************CHERCHER J1 TEL QUE K(J1)=J
  58. DO 90 J1=J,N
  59. JJ=K(J1)
  60. IF(JJ.EQ.J) GOTO 100
  61. 90 CONTINUE
  62. 100 IF(J.EQ.J1) GOTO 120
  63. C****************ECHANGER LES COLONNES J ET J1
  64. K(J1)=K(J)
  65. DO 110 I=1,N
  66. C=VP(I,J)
  67. VP(I,J)=VP(I,J1)
  68. 110 VP(I,J1)=C
  69. 120 CONTINUE
  70. RETURN
  71. END
  72.  
  73.  
  74.  

© Cast3M 2003 - Tous droits réservés.
Mentions légales