Friday, December 29, 2017

Produsul matrice cu vector

Produsul matrice cu vector se realizează dacă și numai dacă numărul de coloane ale matricei A este egal cu numărul de elemente ale vectorului X. Vectorul rezultat are un număr de elemente egal cu numărul de linii ale matricei A. Subprogramul seamănă foarte mult cu subprogramul de înmulțire a două matrice.
         SUBROUTINE PROMAT (A,X,AX,M,N)
         DO 20 I=1,M
         DO 20 J=1,N
         CI=0.
         DO 10 L=1,N
10     CI=CI+A(I,L)*B(L)
         C(I)=CI
20     CONTINUE
         RETURN
         END
Având în vedere faptul că vectorul este socotit ca matrice cu o singură coloană, se apelează subprogramul de înmulțire a două matrice particularizat:
         CALL  PROMAT (A,X,AX,M,N,1)
dar ar trebui ca subprogramul de înmulțire a matricelor să fie un pic schimbat pentru ca structura repetitivă cu o singură iterație să nu se execute de M ori.

         SUBROUTINE PROMAT (A,B,C,M,N,K)
         DO 20 J=1,K
         DO 20 I=1,M
         CIJ=0.
         DO 10 L=1,N
10     CIJ=CIJ+A(I,L)*B(L,J)
         C(I,J)=CIJ
20     CONTINUE
         RETURN
         END
Cu această modificare instrucțiunea 
         DO 20 J=1,K
pentru k=1 se va executa o singură dată, ceea ce este ceva mai eficient.


(29 decembrie 2017)

No comments:

Post a Comment