Я пытаюсь найти диагональную матрицу D собственных значений и матрицу V, столбцы которой являются соответствующими правыми собственными векторами (где AV = VD) трехдиагональной матрицы J. Я пытаюсь реализовать существующий код MATLAB в java, однако результат, который я получаю в java, отличается от результата в MATLAB (результат MATLAB является правильным результатом). Я создал папку на гугл диске с матрицами из MATALB и java, чтобы вы могли увидеть различия.
Фрагмент кода Java:
RealMatrix J2 = new Array2DRowRealMatrix(j);
EigenDecomposition eig = new EigenDecomposition(J2);
RealMatrix V = eig.getV();
RealMatrix D = eig.getD();
Код MATLAB:
[V,D]=eig(J);
Вот матрицы для каждой переменной:
Переменная J:
Переменная V:
Ожидал:
Переменная D:
Ожидал: