Academic Integrity: tutoring, explanations, and feedback — we don’t complete graded work or submit on a student’s behalf.

In C++ language: An n x n matrix is called a positive Markov matrix, if each ele

ID: 3686860 • Letter: I

Question

In C++ language:

An n x n matrix is called a positive Markov matrix, if each element is positive and the sum of the elements in each column is 1. Write the following function to check whether a matrix is a Markov matrix:

Const int size = 3; Bool isMarkovMatrix(const double m[][size]);

Write a test program that prompts the user to enter a 3 x 3 matrix of double values and tests whether it is a Markov matrix.

Here is the sample runs:

Enter a 3 by 3 matrix row by row:

0.15 0.875 0.375

0.55 0.005 0.225

0.30 0.12 0.4

It is a Markov matrix

Press any key to continue . . .

Explanation / Answer

#include<iostream.h>
#include<stdlib.h>
#define size 3;
Bool isMarkovMatrix(const double m[][size])
{
   int i,j,f=0,s=0;

   for(i=0;i<3;i++)
   {
       for(j=0;j<3;j++)
       {
           if(m[j][i]<0)
           {
               f=1;
               break;
           }
           s=s+m[j][i];
       }
       if(s==1)
       {
           s=0;
       }
       else
       {
           f=1;
           break;
       }
   }
   if(f==0)
       return true;
   else
       return false;
}
          
void main()
{
   double a[3][3];
   int i,j;
   Bool ans;
   cout<<"Enter a 3 by 3 matrix row by row";
  
   for(i=0;i<3;i++)
   {
       for(j=0;j<3;j++)
       {
           cin>>a[i][j];
       }
   }

   ans=isMarkovMatrix(a);

   if(ans)
       cout<<"Matrix is Markov";
   else
       cout<<"Martix is not MArkov";

   system("pause");
}