Write a program that prompts the user to enter a 3 x 3 matrix of double values a
ID: 3871614 • Letter: W
Question
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.
- An n x n matrix is a positive Markov matrix if the following is true:
o If each of the elements is positive
o The sum of the elements in each column is 1.
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.
Explanation / Answer
PositiveMatrix.java
import java.util.Scanner;
public class PositiveMatrix {
public static void main(String[] args) {
double a[][] = createArray();
if(isMarkovMatrix(a)) {
System.out.println("It is a Markov matrix");
} else {
System.out.println("It is not a Markov matrix");
}
}
public static double[][] createArray() {
double a[][] = new double[3][3];
Scanner scan = new Scanner(System.in);
System.out.println("Enter a 3 x 3 matrix by row: ");
for (int i = 0; i < a.length; i++) {
for (int j = 0; j < a[i].length; j++) {
a[i][j] = scan.nextDouble();
}
}
return a;
}
public static boolean isMarkovMatrix(double[][] matrix) {
double sum = 0;
boolean status = true;
System.out.println("The sum of the columns:");
for (int i = 0; i < matrix.length; i++) {
sum = 0;
for (int j = 0; j < matrix[i].length; j++) {
if (matrix[j][i] < 0) {
status = false;
}
sum = sum + matrix[j][i];
}
System.out.print(sum+" ");
if (sum != 1.0) {
status = false;
}
}
System.out.println();
return status;
}
}
Output:
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
Related Questions
drjack9650@gmail.com
Navigate
Integrity-first tutoring: explanations and feedback only — we do not complete graded work. Learn more.