【问题标题】:Computing the complex eigenvectors of a sparse matrix in Java在 Java 中计算稀疏矩阵的复特征向量
【发布时间】:2017-06-04 21:08:52
【问题描述】:

我正在尝试计算一个可能较大且稀疏的非对称 NxN 矩阵 (N > 10^6) 的特征值和特征向量。我不需要所有这些,但也许是第一个。理想情况下,我希望从 Java 开始,但如果需要,可以迁移到 C、C++ 或 Python。

我的矩阵可能同时具有复杂的特征值和特征向量。例如,查看this Wolfram Alpha sample 的结果。

我找到了几种方法来使用一些 Java 库并为它们编写了一些评估代码:

但我面临的问题是这些库不会返回(或者至少我没有找到)复值特征向量。它们中的大多数确实返回复值特征,但不返回复杂特征向量。它们通常以“实数向量”或“实数矩阵”的形式提供后者,每个特征向量都有列。

事实上,如果有的话,我确实需要复杂形式的特征值。

现在,我最近开始研究Spectra (C++) 其中seems to support my use case。但是我想先问一下,也许会抛弃我这边的一个误解,或者我可能从 Java 领域跳过的东西,因为我想尽可能地继续使用单一平台/语言。

有什么我应该调查的吗?另外,如果我最终放弃了 Java 来完成这项任务,我可以寻找 Spectra 的其他替代品吗?谢谢!

【问题讨论】:

    标签: eigenvalue eigenvector apache-commons-math jama mtj


    【解决方案1】:

    以防万一有人偶然发现这一点,我最终采用了 C++ 方式,因为没有一个 Java 库提供了我需要的复杂特征向量。

    我最终使用 Spectra 和 Eigen 用 C++ 实现了我需要的大部分东西。然后我使用 SWIG 构建了一系列本机包装类。

    【讨论】:

      【解决方案2】:

      对于将来有相同问题的每个人:有一个名为 Jeigen 的 Java 库可以做到这一点。它实际上是原始发布者在他自己的答案中已经提到的 Eigen C++ 库的 Java 包装器。

      你可以找到杰根here

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2014-10-30
        • 2022-01-25
        • 2013-09-25
        • 1970-01-01
        • 2012-10-23
        • 2019-01-27
        • 1970-01-01
        • 2012-08-04
        相关资源
        最近更新 更多