In: Computer Science
Write a program that prompts the user to enter a 3 x 3 matrix of double values and tests whether it is a positive Markov matrix. There will be two methods which will be called from the main method: public static double [] [] createArray() 1. Creates a 3 by 3 two dimensional array of doubles 2. Prompts the user for values as shown in the sample run 3. Stores the numbers in the array in the order entered 4. Returns the array to the main method public boolean isMarkovMatrix(double [][] matrix) 1. Returns false if any value in the array is negative 2. Prints the sum of each column in the array 3. Returns false if any the sum of any of the columns is not equal to 1.0 4. Otherwise, it returns true. Sample Program running: Enter a 3 x 3 matrix by row 0.15 0.875 0.375 0.55 0.005 0.225 0.30 0.12 0.4 The sum of the columns 1.0 1.0 1.0 It is a Markov matrix Enter a 3 x 3 matrix by row -0.2 0.875 0.375 0.75 0.005 0.225 0.45 0.12 0.4 The sum of the columns 1.0 1.0 1.0 It is not a Markov matrix
Code:
import java.util.Scanner;
public class MarkovMatrix
{
public static double [] [] createArray()
{
Scanner input=new
Scanner(System.in); //creating scanner class
double[][] input_array=new
double[3][3]; //input_array declaration
for (int i=0;i<3;i++)
{
for (int
j=0;j<3;j++)
{
input_array[i][j]=input.nextDouble(); //taking input_values from
user
}
}
return input_array; //returning
input_Array
}
public static boolean isMarkovMatrix(double [][] matrix)
//ismarkovmatrix function which accepts input matrix
{
int isNegative=0,isSumNegative=0,k=0; //isnegative and
issumnegative variables to check any column or sum is
negative
double[] sum=new double[3]; //sum array to store the
sum of colums
for (int i=0;i<3;i++) //iterate the loop for every
row
{
for (int j=0;j<3;j++) //iterate
loop for every column
{
sum[k]=sum[k]+matrix[j][i]; //add each element
in the column to sum value
if ((matrix[j][i])<0.0) //check any element
is negative then make isNegative=1
isNegative=1;
}
k++; //increment k value
}
System.out.println("The sum of column values are : ");
//print the sum of colums
for (int i=0;i<3;i++)
{
if (sum[i]<0.0) //check if the
sum value is negative then make isSumNegative=1
isSumNegative=1;
System.out.print (sum[i] + " "
);
}
if (isNegative==1 ||
isSumNegative==1) //if element is negative or sum is negative
return fals
return
false;
else //else return true
return
true;
}
public static void main(String args[])
{
System.out.println("Enter the 3x3 Matrix:");
double [][] input_Array=createArray(); //calling
createArray function and storing array that was returned by
function
boolean result=isMarkovMatrix(input_Array)
; .//calling isMarkovMatrix() function by passing input_array and
storing result
if (result==true) //if result true print markov matrix
else print not markov matrix
System.out.println("\nThe given
matrix is Markov Matrix");
else
System.out.println("\nThe given
matrix is Not Markov Matrix");
}
}
Code and Output Screenshots:
Note : if you have any queries please post a comment thanks a lot..always available to help you..