Algebra of Matrices (2D Arrays) Part II

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:


  1. FOR I = 0 TO (p-1)


  2. 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])


  3. END OF INNER LOOP


  4. 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:


Check out this stream