我正在使用 Apache Commons Library 进行一些基本计算,并且我有一个 2x2 对称 RealMatrix,我需要为其计算 EigenDecomposition。矩阵如下:
{{10.387035702893005, 0.14862451664049367},
{0.14862451664049442, -5.1952457826500815}}
double 类型的右上角和左下角元素应该是相同的,您会注意到它们几乎相同。但是,当我将矩阵传递给 EigenDecomposition 的新实例时,我会遇到异常。isSymmetric() 的计算结果为 false,并且因为构造函数将 'true' 作为参数传入,所以 isSymmetric() 方法会引发异常。我基本上需要绕过这个检查。我有哪些选择?谢谢!
public EigenDecomposition(final RealMatrix matrix,
final double splitTolerance) {
if (isSymmetric(matrix, true)) {
transformToTridiagonal(matrix);
findEigenVectors(transformer.getQ().getData());
}
}
NB 分裂容差参数,人们可能认为它指定了容差水平,只是一个虚拟参数。