Я вычисляю собственные значения симметричной вещественной матрицы с восьмеркой из numpy. Я знаю, что в сети есть куча подобных вопросов, но я не нашел решения.
Подпрограмма Eigh использует в соответствии с документом подпрограмму на Фортране, которая выдает собственные значения в порядке возрастания. Таким образом, матрица преобразования в новом базисе также содержит матрицу перестановок. Мой вопрос в том, можно ли как-то извлечь эту матрицу перестановок из матрицы преобразования, т.е. найти P в
U'=P U.
Кажется, в mathematica есть обходной путь (https://mathematica.stackexchange.com/questions/59172/should-eigenvalues-be-ordered), однако у меня нет лицензии и я не могу перевести приведенный там код. Можно было бы использовать eig, который не сортирует собственные значения, однако я нашел некоторую сортировку для очень больших матриц.
Заранее спасибо
Покажите минимальный воспроизводимый пример: входная матрица, выход и что вы хотели получить взамен. Сделайте небольшой пример для игры.
Хм, я не знаю ни о каком каноническом порядке собственных значений/собственных векторов. В сообщении вы упоминаете, что кто-то предпочитает их упорядоченные по значению, а не по абсолютному значению. Вы тоже этого хотите? И если да, то могу я спросить, почему? Обратите внимание, что, поскольку матрицы перестановок ортогональны независимо от их порядка, если вы поместите их в матрицу, вы получите унитарную матрицу.