0

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

上面的答案(来自我的应用程序)是使用 SVD。Eigenvalue decomp 给出了一个“完全错误”的答案。有什么办法可以提高答案的准确性?我正在使用EJML进行矩阵后端工作,我的测试是在运行 Android 4.3 的 Nexus 7 上进行的。不,据我所知,EJML 没有自己的矩阵幂/幂方法。

4

1 回答 1

1

从 0.4.5 版本开始,la4j(Java 的线性代数)确实有一个类power操作。Matrix但它只能与整数指数一起使用。像这样:

// 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方法的双指数。

于 2013-09-11T10:29:52.950 回答