首页 > 解决方案 > ND4J 分解的特征值不正确

问题描述

我发现 ND4J 返回不正确的特征值:

 double[][] array = new double[][]{{1, 2, 1}, {6, -1, 0}, {-1, -2, -1}};
 INDArray matrix = Nd4j.create(array);

 INDArray values = Eigen.symmetricGeneralizedEigenvalues(matrix);
 System.out.println(values);

 [-6.2408, -1.3996, 6.6403]

我也试过这个,结果相同:

INDArray values = Eigen.symmetricGeneralizedEigenvalues(matrix, Nd4j.eye(matrix.rows()));

实际值为[-4.0, 0.0, 3.0]。我已经手动验证了这一点,并使用Colt,JAMAEJML库。

我仔细查看了文档,发现 的输入矩阵symmetricGeneralizedEigenvalues应该是对称的,而这个不是。但是,我找不到任何关于接受非对称方阵的方法的文档。我觉得我一定在这里做错了什么。我错过了什么?

标签: javamathnd4j

解决方案


推荐阅读