首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Java中的矩阵运算

Java中的矩阵运算
EN

Stack Overflow用户
提问于 2014-02-25 23:47:41
回答 4查看 9.5K关注 0票数 0

我到处找这个,但我错了。在我的Java程序中,我创建了几个2D数组。现在,我需要形成新的二维数组,比如,逆,转置,乘法,左除法,甚至更多。其中一些(简单)是我自己创造的,但左除法,右除法,逆除法,我没有。

通过使用像Jama这样的libs,出现了一些问题。

代码语言:javascript
复制
java.lang.RuntimeException: Matrix is rank deficient.

我把它编码如下:

代码语言:javascript
复制
Matrix Am=new Matrix(A);
Am=Am.inverse();

A是二维数组(m ),Am是从2DArray A创建的新矩阵。

我试着这样做,得到左除法,但我不能先求矩阵逆。

我的错误在哪里?是否有人知道另一个库可以从2DArray转换为矩阵,然后再执行更难的矩阵操作(左div,inv.)用它?

编辑

我用这个矩阵上的逆得到A\P (可以像我在某个地方看到的那样被计算为逆(A)*P)。你知道怎么和Jama取得A\P吗?这是我的首要问题左组。

EN

回答 4

Stack Overflow用户

发布于 2014-02-25 23:52:36

对于矩阵库,可以检查此问题

但是对于您编写的代码,没有人能说出任何东西,您必须包括代码本身,以查看问题所在。

票数 1
EN

Stack Overflow用户

发布于 2014-02-25 23:52:37

正如你的例外说,你的矩阵是秩缺陷,它是数学上不可能计算一个逆矩阵。在这些事情上,计算机并非凌驾于数学之上。

这可能有多种原因。首先,逆矩阵只存在于正方形输入,即格式not,您没有表明情况是这样的。存在着对所有矩阵都可以构造伪逆的思想.

但即使对于方阵,秩也是有缺陷的,即矩阵可以是奇异的。确切地说,如果行列式为零,就会发生这种情况。在计算方面,这也可能发生在病态矩阵的奇异值范围很宽的情况下。

你能提供发生这个问题的矩阵吗?

票数 0
EN

Stack Overflow用户

发布于 2014-02-25 23:53:30

如果矩阵具有秩<= min(numOfRows,numOfColumns),则称其秩亏,且不可能计算该矩阵的逆。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/22028756

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档