У меня есть настоящая недиагонализируемая матрица, которую я хочу разложить настолько аккуратно, насколько это возможно.Я хотел бы поместить это в нормальную форму Джордана, но, поскольку это проблематично с точки зрения численности, я ищу следующую лучшую вещь.Я обнаружил, что существуют подпрограммы FORTRAN и MATLAB, которые выполняют блочно-диагональную факторизацию Шура матрицы.Реализация FORTRAN в SLICOT - MB03RD
, а реализация MATLAB - bdschur
(что, насколько я знаю, может быть просто оболочкой вокруг MB03RD
).
У меня нет MATLAB на моем компьютере, и код, который генерирует мои матрицы, написан на Python, поэтому я ищу эквивалентную функцию в Python.Старая документация для Python Control Systems Library указывала , что планировалась эмуляция bdschur
, но она не отображается нигде в текущих документах .В репозитории Slycot есть файл FORTRAN для MB03RD
, но я не могу найти много документации для Slycot, и когда я импортирую его, очень немногие функции оказываются обернутыми в функции Python.
Я хотел бы знать, знает ли кто-нибудь о способе вызова эквивалентной подпрограммы в Python или существует какая-то другая подобная декомпозиция, которая имеет реализацию в Python.