Saturday, January 6, 2018

Transformarea unei matrice normale în matrice rară

Matricea normală este aceea definită prin DIMENSION nume(dim_1,dim_2) și care în FORTRAN IV se memorează coloană după coloană, nu linie de linie ca în alte limbaje de programare. Matricea rară se memorează în trei vectori doar prin elementele nenule, indicând linia, coloana și valoarea acestora. Elementele vectorului LIN() arată linii, elementele vectorului ICOL() arată poziția pe coloane a elementelor nenule și vectorul VAL() arată care sunt valorile nenule ale matricei.
Subprogramul care memorează elementele nenule ale matricei A în cei trei vectori este :

          SUBROUTINE TRNNR(A,M,N,LIN,ICOL,VAL,K,IK)
          IK=0
          IF((K.LE.0).OR.(K.GT.N).OR.(K.GT.M)) GO TO 20
          K=0
          DO 10  I=1,M
          DO 10  J=1,N
          IF(A(I,J).EQ.0) GO TO 10
          K=K+1
          LIN(K)=I
          ICOL(K)=J
          VAL(K)=A(I,J)
10      CONTINUE
          IK=1
20      CONTINUE
          RETURN
          END




(06 ianuarie 2018)

No comments:

Post a Comment