Saturday, January 6, 2018

Transformarea matricei rare în matrice normală

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 reconstruiește matricea A  este:

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




(06 ianuarie 2018)

No comments:

Post a Comment