找到3x3矩阵的辅助因子和决定因素(java)

时间:2015-11-29 16:24:08

标签: java arrays matrix

我计算了产品,总和和转置(产品),但我不知道从哪里开始辅助因子并确定产品矩阵。

我见过几个例子,但没有一个像我的特定代码,所以如果有人能告诉我如何将这两种方法融入我的程序中,我很高兴。

请不要问我我尝试了什么,因为正如我所说的那样,我现在一无所知

//here is the code I wrote for the product:

package programEx;
import java.io.*;
import java.util.*;
import java.io.File.*;
import java.util.Scanner;

public class progEx {

    public static void main(String[] args) {
    //Establishing Input Stream
       Scanner s = new Scanner(System.in);
       System.out.print("Enter number of rows in A: ");
       int rowsInA = s.nextInt();
       System.out.print("Enter number of columns in A / rows in B: ");
       int columnsInA = s.nextInt();
       System.out.print("Enter number of columns in B: ");
       int columnsInB = s.nextInt();

       int[][] a = new int[rowsInA][columnsInA];
       int[][] b = new int[columnsInA][columnsInB];

 //Taking user input for 1st matrix
       System.out.println("Enter matrix A");
       for (int i = 0; i < a.length; i++) {
           for (int j = 0; j < a[0].length; j++) {
               a[i][j] = s.nextInt();
           }
       }
 //Taking user input for 2nd matrix
       System.out.println("Enter matrix B");
       for (int i = 0; i < b.length; i++) {
           for (int j = 0; j < b[0].length; j++) {
               b[i][j] = s.nextInt();
           }
       }

 //calling the multiplication method and passing it to both matrices
       int[][] c = multiply(a, b);
       System.out.println("Product of A and B is");
       for (int i = 0; i < c.length; i++) {
           for (int j = 0; j < c[0].length; j++) {
               System.out.print(c[i][j] + " ");

           } 
           System.out.println();
       } 

  }

//Separate method for the multiplication of 1st and 2nd matrices
   public static int[][] multiply(int[][] a, int[][] b) {
       int rowsInA = a.length;
       int columnsInA = a[0].length; 
       int columnsInB = b[0].length;
       int[][] c = new int[rowsInA][columnsInB];
       for (int i = 0; i < rowsInA; i++) {
           for (int j = 0; j < columnsInB; j++) {
               for (int k = 0; k < columnsInA; k++) {
                   c[i][j] = c[i][j] + a[i][k] * b[k][j];
               }
           }
       }
       return c;
   }
}

1 个答案:

答案 0 :(得分:1)

嗯,3 * 3矩阵有3列,3行开头。 每个都以索引0开头。

行列式可以计算为:

int d=determinant();
int determinant()
{
  int x=a[0][0]*((a[1][1]*a[2][2])-(a[2][1]*a[1][2]));
   int y=-a[0][1]*((a[0][1]*a[2][2])-(a[2][0]*a[1][2]));
 int z=a[0][2]*((a[1][0]*a[2][1])-(a[1][1]*a[2][0]));

    int r=x+y+z;
    return r;
    }

这仅用于找到3 * 3矩阵的行列式。