As you know from the previous article, matrices are 2D arrays. In the previous article, we saw how two matrices are added and subtracted. In this article, we will continue our discussion on algebra of two matrices by discussing how two matrices are multiplied.
Multiplication of two Matrices
Multiplication of two matrices mat1[a x b] and mat2[p x q] is only valid if b=p. While there are many algorithms by which two matrices can be multiplied, here I’ll give you the most simple algorithm. Others are used when efficiency matters.
Algorithm for Multiplication of two Matrices
Suppose,
-
Two 2D arrays to be mat1 [p][p] and mat2 [p][p] having same number of rows and columns.
-
A third 2D array, mul [p][p] to store the result.
Here is the algorithm:
FOR I = 0 TO (p-1)
FOR J = 0 TO (p-1) mul [I][J] = 0 FOR K = 0 TO (p-1) mul [I][J] += (mat1 [I][K] * mat2 [K][J])
END OF INNER LOOP
END OF OUTER LOOP
Below is a example program which illustrates the multiplication of two matrices by this algorithm:
// Example program in C++ // It shows you how to // multiply two matrices #include<iostream.h> void main(void) { int i,j,k; // this constant determines // the number of rows and columns const int max=3; int mat1[max][max]; int mat2[max][max]; int mul[max][max]; cout<<"enter elements for mat1:"; for(i=0;i<=(max-1);i++) for(j=0;j<=(max-1);j++) cin>>mat1[i][j]; cout<<"enter elements for mat2:"; for(i=0;i<=(max-1);i++) for(j=0;j<=(max-1);j++) cin>>mat2[i][j]; // multiplication of two matrices // is done here for(i=0;i<=(max-1);i++) for(j=0;j<=(max-1);j++) { mul[i][j]=0; for(k=0;k<=(max-1);k++) mul[i][j]+=mat1[i][k]*mat2[k][j]; } // till here // show the contents of the array // after formatting for(i=0;i<=(max-1);i++) { for(j=0;j<=(max-1);j++) cout<<mul[i][j]<<" "; cout<<endl; } }
Good-Bye!
Related Articles: