我到处寻找这个东西,但是我错了某处。在我的Java程序中,我创建了几个2D数组。现在,我需要形成新的二维数组,其中包括以前的,反转的,转置的,乘法的,左分的,甚至更多的。他们中的一些人(简单)我创造了自己,但是留下了师,右师,反而我没有。Java中的矩阵操作
通过使用像Jama一样的库,会出现一些问题。
java.lang.RuntimeException: Matrix is rank deficient.
我这样的代码是:
Matrix Am=new Matrix(A);
Am=Am.inverse();
A
是二维数组(MXN)和Am
是2DArray A.创建新的矩阵
我想这样做是为了得到左除,但我不能先解矩阵求逆。
我的错误在哪里?是否有人知道另一个库从2DArray转换为Matrix,然后使用更复杂的矩阵运算(left div,inv ...)?
编辑
我用这个矩阵求逆得到A \ P(可以计算为逆(A)* P,因为我看到的地方)。你知道如何与贾马得到A \ P吗?这是我的主要问题,左派。
那么好。我在这个矩阵上使用逆来得到A \ P(可以像我在某处看到的那样计算为逆(A)* P)。 你知道如何与贾马得到A \ P吗? – Aleksandar
通常情况下,你没有。你所做的是解决一个线性系统。即,二次矩阵A被分解为PLU或QR,并且该分解用于求解AX = P。如果计算A = QR,那么这些步骤将乘以Q^T * P,然后对三角形因子应用回代。 - 这一切都假定A是二次的,规则的和有条件的。违反任何这些条件将阻止或中止计算。 – LutzL
好的,明白了。我会尝试另一种方式来解决问题,而不使用这个公式...谢谢。 – Aleksandar