私は Apache Commons Library を使用していくつかの基本的な計算を行っており、EigenDecomposition を計算する必要がある 2x2 の対称 RealMatrix があります。マトリックスは次のとおりです。
{{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());
}
}
注意: 許容レベルを指定すると考えられる分割許容パラメータは、単なるダミー パラメータです。