Каждая действительная матрица можно свести к вещественной форме Шура Т = U T A U с помощью ортогонального преобразования similiary U . Здесь матрица T имеет квазитреугольную форму с 1 на 1 или 2 на 2 блока на главной диагонали. Каждый 1 по 1 блок соответствует реальному собственному значению А и каждый из 2 на 2 блок соответствует паре комплексно сопряженных собственных значений А .
Проблема собственного значений переупорядочения состоит в нахождении ортогонального преобразования подобия таким образом, что выбор пользователя собственных значений А появляется по диагонали верхнего левого угла S = V T T V .
В LAPACK соответствующая процедура двойной точности называется DTRSEN. Даниэль Кресснер написал заблокированную версию с именем BDTRSEN. Процедура ScaLAPACK является PDTRSEN.
Я ищу приложения и алгоритмы, в которых успехи в решении проблемы переупорядочения собственных значений имели бы реальную выгоду.
Мы можем легко генерировать тестовые матрицы в квазитреугольной форме, но у нас возникают проблемы с выбором формы реалистичного распределения выбора пользователем собственных значений.
С моей точки зрения, подпространственная итерация с ускорением Ритца является идеальным алгоритмом для тестирования улучшений алгоритма переупорядочения. Это требует (разреженного) умножения вектора матрицы, высокого алгоритма QR и алгоритма переупорядочения.
Однако мне трудно найти реальные проблемы жизни, когда ясно, что определенный набор собственных пар физически интересен.
Мы можем выполнить переупорядочение собственных значений для плотных матриц размером 40 000, используя машину с общей памятью. Наилучшая производительность достигается, когда пользователь выбирает около 50% всех собственных значений.
источник