Информация об изменениях

Сообщение Нахождение собственных значений симметричной матрицы от 05.08.2024 18:32

Изменено 05.08.2024 18:34 Khimik

Нахождение собственных значений симметричной матрицы
У меня стоит такая задача: научиться решать ядерное уравнение Шредингера в приближении “жёсткий ротатор – гармонический осциллятор”. Есть набор силовых постоянных – вторых производных энергии молекулы по декартовым координатам (предполагается что первые производные нулевые – это минимум на поверхности потенциальной энергии). Это матрица размером 3N*3N, где N – размер молекулы. Матрица симметричная: Uij=Uji. Мне сказали что этуц матрицу надо диагонализовать, и на диагонали будут частоты колебаний, соответствующие полосам в инфракрасном спектре молекулы. И я теряюсь, как конкретно её можно диагонализовать.
Методов диагонализации матрицы много; в данном случае нужно диагонализовать её так, чтобы на диагонали остались собственные значения матрицы, с учётом что матрица симметрична. Вроде для этого подходит метод Якоби, я уже делал его реализацию. Однако меня смущает то, что алгоритм Якоби итерационный, значит он относительно медленной. Разве нет для этой задачи нормального неитерационного метода?
Нахождение собственных значений симметричной матрицы
У меня стоит такая задача: научиться решать ядерное уравнение Шредингера в приближении “жёсткий ротатор – гармонический осциллятор”. Есть набор силовых постоянных – вторых производных энергии молекулы по декартовым координатам (предполагается что первые производные нулевые – это минимум на поверхности потенциальной энергии). Это матрица размером 3N*3N, где N – размер молекулы. Матрица симметричная: Uij=Uji. Мне сказали что эту матрицу надо диагонализовать, и на диагонали будут частоты колебаний, соответствующие полосам в инфракрасном спектре молекулы. И я теряюсь, как конкретно её можно диагонализовать.
Методов диагонализации матрицы много; в данном случае нужно диагонализовать её так, чтобы на диагонали остались собственные значения матрицы, с учётом что матрица симметрична. Вроде для этого подходит метод Якоби, я уже делал его реализацию. Однако меня смущает то, что алгоритм Якоби итерационный, значит он относительно медленной. Разве нет для этой задачи нормального неитерационного метода?