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 A response in Eclipse Java would be much appreciated. Thank you in advance
Given below is the code for question. Please do rate the answer
if it helped. Thank you.
MarkovMatrix.java
------------
import java.util.Scanner;
public class MarkovMatrix {
public static double [] [] createArray(){
double[][] mat = new
double[3][3];
Scanner input = new
Scanner(System.in);
System.out.println("Enter a 3 x 3
matrix by row");
for(int i = 0; i < 3; i++)
for(int j = 0; j
< 3; j++)
mat[i][j] = input.nextDouble();
return mat;
}
public static boolean isMarkovMatrix(double [][]
matrix) {
boolean valid = true;
for(int i = 0; i < 3;
i++)
for(int j = 0; j < 3; j++)
if(matrix[i][j] < 0)
{
valid =
false;
break;
}
double sum;
System.out.print("The sum of
columns is: ");
for(int col = 0; col < 3; col++)
{
sum = 0;
for(int row = 0;
row < 3; row++)
sum += matrix[row][col];
if(Math.abs(sum-1.0) >= 0.01) //when comparing doubles we can
not compare exact values
valid = false;
System.out.printf("%.1f ", sum);
}
System.out.println();
return valid;
}
public static void main(String[] args) {
double[][] matrix =
createArray();
if(isMarkovMatrix(matrix))
System.out.println("It is a Markov matrix");
else
System.out.println("It is not a Markov matrix");
}
}