java - Java 中的矩阵幂不准确

标签 java android matrix

我正在开发一个适用于 Android 的计算器应用程序(Java 语言),具有一些基本的矩阵功能。我尝试了两种算法,SVD 和特征值分解,来实现矩阵幂,但结果对我来说有点不准确。例如,[[1,2];[3,4]]^2.3在 Scilab 中返回为 [11.463254,16.618358];[24.927537,36.390583]](之后abs 来删除烦人的虚部),但我的应用程序给出了 [[11.5107804,16.4911239];[26.2208761,37.1379804]]。我将 Scilab 的答案视为事实,WolframAlpha 也证实了这一点。

上面的答案(来 self 的应用程序)是使用 SVD。特征值分解给出了“明显错误”的答案。有什么办法可以提高答案的准确性吗?我正在使用EJML对于矩阵后端工作,我的测试是在运行 Android 4.3 的 Nexus 7 上进行的。不,据我所知,EJML 没有自己的矩阵幂/幂方法。

最佳答案

la4j (Linear Algebra for Java) 自 0.4.5 版本起,确实为 Matrix 类提供了 power 运算。但它只能与整数指数一起使用。像这样:

// creates a new dense matrix
Matrix a = new Basic2DMatrix(...);

// performs 'a * a * a' in O(log n) via exponentiation-by-squaring
Matrix b = a.power(3);

无论如何,我会考虑支持 power 方法的双指数。

关于java - Java 中的矩阵幂不准确,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18729470/

相关文章:

java - 从 JTable 中删除正在编辑的行

Android:在不是 Activity 或 BroadcastReceiver 的类中威胁隐式 Intent

matrix - 从二维变换矩阵中获取旋转

c# - 设置透视图的缩放值等于透视图

java - 如何在类注册表中正确使用for循环?

Java - 创建一个新线程

java - JTextArea吞并JButton Action 监听器Java

java - 从 Android Java 代码的 php Json 结果中删除结尾 [ 和 ]

android - 如何在 Android 的 Instagram 上添加带图片分享的标题?

arrays - 确定单个单元格中两个矩阵的最大值