查找2x2阵列的等级



i具有扮演2x2矩阵的2D数组。我如何找到该矩阵的等级。到目前为止,我有:

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]+" ");
        }
    }
}

我如何找到该矩阵的等级(数组)?

您可以通过将矩阵转换为行echelon表单来找到矩阵的等级。矩阵的行形式将与矩阵具有相同的等级。行式表格矩阵的等级仅是非零行的总数。在2x2情况下,您在这里有计算非常简单。请参阅此链接以获取更详细的说明

http://en.wikipedia.org/wiki/rank_(linear_algebra)#computation

一种更简单的原油方法(因为您只有2x2矩阵)就是简单地检测矩阵的一列是否是另一个倍数。这可以通过测试(您选择的某种数值公差)大致检测到这些比率是否相等(使用矩阵符号,而不是基于零整数的零阵列索引)

 A(1,1)/A(1,2) == A(2,1)/A(2,2)  

照常照顾零部门。如果比率相等,则表明您的列是彼此的倍数,因此矩阵不是完整的等级(1或0)。如果所有矩阵元素为零,则等级为零。

如果这太粗糙满足您的需求,请使用上述链接中建议的高斯消除方法。

@sean Owen:排名也可能为0。

相关内容

  • 没有找到相关文章

最新更新