Проблемы диагонализации матрицы методом Якоби

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

Модератор: модераторы

Новая тема Ответить
Аватара пользователя

Автор темы
Bitman
В сети
Сообщений: 1261
Стаж: 12 лет 4 месяца
Желаемая форма обращения: Как хотите к себе
Благодарил (а): 65 раз
Поблагодарили: 59 раз

Проблемы диагонализации матрицы методом Якоби

Сообщение Bitman » 17.11.2024, 07:53

Мне нужно запрограммировать вычисление собственных значений симметричной матрицы. Я сделал диагонализацию матрицы методом Якоби, в большинстве случаев мой алгоритм хорошо работает, но иногда он почему-то зависает. Вот для этой матрицы алгоритм виснет:
► Показать
Прошу местных математиков, в частности Весельчака, помочь мне устранить эту проблему. Я этот алгоритм делал довольно давно и не очень помню как всё работает.
На каждой итерации, алгоритм находит наибольший недиагональный элемент, и считает какой-то арктангенс из значений на его позициях; потом алгоритм создаёт матрицу для вращения, сначала это единичная матрица, но в ней четыре элемента (два на диагонали) заменяются на синусы и косинусы этого арктангенса. И далее исходная матрица, которую мы диагонализуем, умножается на эту матрицу вращения (точнее проводится два умножения). Эта итерация повторяется до тех пор, пока недиагональные элементы не становятся достаточно маленькими.

p.s. изначально мне этот алгоритм подсказал Весельчак, надеюсь он жив и в здравом уме, ну если что тут вроде все свои.
Не бойтесь будущего, оно не настоящее.

Аватара пользователя

Олег К
Сообщений: 1180
Стаж: 16 лет 9 месяцев
Желаемая форма обращения: Как хотите к себе
Благодарил (а): 294 раза
Поблагодарили: 364 раза

Проблемы диагонализации матрицы методом Якоби

Сообщение Олег К » 17.11.2024, 10:26

Bitman писал(а): 17.11.2024, 07:53 Вот для этой матрицы алгоритм виснет:
А она точно симметричная?

Аватара пользователя

Автор темы
Bitman
В сети
Сообщений: 1261
Стаж: 12 лет 4 месяца
Желаемая форма обращения: Как хотите к себе
Благодарил (а): 65 раз
Поблагодарили: 59 раз

Проблемы диагонализации матрицы методом Якоби

Сообщение Bitman » 17.11.2024, 13:10

Олег К писал(а): 17.11.2024, 10:26 А она точно симметричная?
Спасибо, полезное замечание! А мне это не приходило в голову. Там действительно симметричные элементы чуть отличаются, и похоже проблема в этом (это различие больше критерия сходимости алгоритма диагонализации). Я усреднил каждую пару и стало норм. Спасибо!
Не бойтесь будущего, оно не настоящее.

Аватара пользователя

Schustram
Сообщений: 671
Стаж: 7 лет 5 месяцев
Реальное имя: Анатолий
Желаемая форма обращения: Всё равно
Откуда: Москва
Благодарил (а): 1759 раз
Поблагодарили: 62 раза
Возраст: 53
Контактная информация:

Проблемы диагонализации матрицы методом Якоби

Сообщение Schustram » 17.11.2024, 18:37

Хех :D
Чем дальше в лес, тем толще штурмовик.

Новая тема Ответить

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 23 гостя