Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 查找2x2数组的秩_Java_Arrays_Math_Matrix_Linear Algebra - Fatal编程技术网

Java 查找2x2数组的秩

Java 查找2x2数组的秩,java,arrays,math,matrix,linear-algebra,Java,Arrays,Math,Matrix,Linear Algebra,我有一个2d阵列,扮演2x2矩阵的角色。我怎样才能找到那个矩阵的秩呢。到目前为止,我有以下几点: Scanner input=new Scanner(System.in); int[][] A = new int[2][2]; int[][] B = new int[2][2]; int[][] C = new int[2][2]; System.out.println("Enter elements for matrix A : "); for (int i=0 ; i < A.l

我有一个2d阵列,扮演2x2矩阵的角色。我怎样才能找到那个矩阵的秩呢。到目前为止,我有以下几点:

Scanner input=new Scanner(System.in);

int[][] A = new int[2][2];
int[][] B = new int[2][2];
int[][] C = new int[2][2];

System.out.println("Enter elements for matrix A : ");

for (int i=0 ; i < A.length ; i++)
{
    for  (int j=0 ; j < A[i].length ; j++)
    {
        A[i][j] = input.nextInt();
    }

    System.out.println("Matrix A: ");
    for (int i=0 ; i < A.length ; i++)
    {
        System.out.println();
        for(int j=0 ; j < A[i].length ; j++)
        {
            System.out.print(A[i][j]+" ");
        }
    }
}
扫描仪输入=新扫描仪(System.in);
int[]A=新的int[2][2];
int[]B=新的int[2][2];
int[][]C=新int[2][2];
System.out.println(“为矩阵A输入元素:”);
for(int i=0;i

如何找到该矩阵(数组)的秩?

您可以通过将矩阵转换为行梯队形式来找到矩阵的秩。矩阵的行梯队形式将与矩阵具有相同的排名。行梯队形式矩阵的秩只是非零行的总数。在2x2的情况下,计算非常简单。有关更详细的说明,请参阅此链接

一种简单而粗略的快速方法(因为您只有2x2个矩阵)是简单地检测矩阵的一列是否是另一列的倍数。这可以通过测试这些比率是否相等(使用矩阵表示法,而不是基于整数零的数组索引)来大致检测(到您选择的一些数字公差)

像往常一样注意零除法。如果比率相等,则表明列是彼此的倍数,因此矩阵不是满秩(因此为1或0)。如果所有矩阵元素都为零,则秩为零


如果这对于您的需求来说太粗糙,请使用上面链接中建议的高斯消去法。

@Sean Owen:排名也可以是0。

排名的含义是什么?@BhavikAmbani您尝试过什么?因为这里的代码与求秩无关,它只是填充并打印矩阵,它是1或2。什么条件使它成为秩1矩阵?检查一下。@SeanOwen-我想它也可能是零。。。
 A(1,1)/A(1,2) == A(2,1)/A(2,2)