Когда заказываются собственные значения, возвращаемые numpy .linalg.eig? - PullRequest
1 голос
/ 09 марта 2020

В документации говорится о возвращаемых значениях:

Собственные значения не обязательно упорядочены ...

Но каждый раз, когда я использую функцию, они располагаются в порядке убывания , который идеально подходит для моего использования. Я хочу знать, при каких обстоятельствах мне придется убедиться, что я сам их сортирую.

1 Ответ

2 голосов
/ 09 марта 2020

Если матрица, подлежащая диагонализации, не является эрмитовой, собственные значения, как правило, будут сложными, так что они вообще не могут быть отсортированы.

numpy.linalg.eig вызывает LAPACK подпрограммы, а в LAPACK сортировка в порядке убывания (когда это возможно, то есть в случае реальных собственных значений): « популярное соглашение ». numpy нельзя связать только со ссылкой LAPACK в http://www.netlib.org/lapack/, но также и с любой другой библиотекой, предоставляющей соответствующие подпрограммы линейной алгебры, которая не обязательно должна выполнять то же самое или любое собственное значение сортировка. numpy.linalg.eig не выполняет никакой сортировки сверх того, что уже выполняются в Фортране в LAPACK, поэтому отсортированные собственные значения могут не гарантироваться даже для эрмитовых (включая вещественные симметрии c) матриц.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...