|
Вычисление собственных векторов |
|
|
|
 |
Ответов
|
Aug 1 2013, 11:47
|

Гуру
     
Группа: Модератор FTP
Сообщений: 4 479
Регистрация: 20-02-08
Из: Москва
Пользователь №: 35 237

|
Задача получения собственных векторов к уже имеющимся собственным значениям возникает довольно часто. Особенно, когда нужны не все собвектора, а только для малого числа выбранных собзначений (обычно либо самых больших, либо самых маленьких). Опять же хочется сэкомить вычисления, рассчитывая на то, что определить избранные собвектора будет быстрее, чем их полный набор.
К сожалению, эти надежды оправдываются далеко не всегда. В большинстве случае бавает гораздо проще вычислить полный набор того и другого, используя алгортмы, вычисляющие собзначения вместе с их собвекторами, нежели прилаживать вектора к уже имеющимся собственным значениям.
Не знаю, как сейчас, но традиционно для последней цели использовались обратные итерации с последующей реортогонализацией полученного набора собвекторов. Процедура гадкая по части объема вычислений, т.к. матрицу векторов приходится очень много раз вращать. А в случае комплексных чисел и вовсе ужасная по числу операций.
Из собственного опыта (правда он у меня касается только действительных матриц) могу посоветовать повторить QR-алгоритм в варианте с собственными векторами. Однако ускорив его тем, что "подсказывать" этой процедуре готовые величины собзначений (в точности в том же порядке, в котором они были найдены и никаком другом!), а не находить их методом итераций. Тогда, несмотря на итерационную реализацию алгоритма, он сходится за один проход на каждое собственное значение. Об этом еще Парлетт писал в своей книжке "Симметричная проблема собственных значений". И, кажется, именно он это свойство впервые обнаружил.
Но это я пишу лишь с очень слабой надеждой, что реализация алгоритма вам интересна. Но если нужен просто чужой готовый код, чтоб свои мозги не утруждать, то тогда я пас.
|
|
|
|
|
Sep 16 2013, 01:30
|
Местный
  
Группа: Участник
Сообщений: 336
Регистрация: 7-03-07
Из: Петербург
Пользователь №: 25 961

|
QUOTE (mihalevski @ Aug 1 2013, 06:49)  Имеется матрица комплексных значений размером 4 на 4. Необходим код на Си решающий задачу определения собственных векторов Удалось? QUOTE (Xenia @ Aug 1 2013, 14:47)  Об этом еще Парлетт писал Ай да Бересфорд... А за пол-итерации можно?
|
|
|
|
|
Jun 26 2014, 07:22
|
Частый гость
 
Группа: Участник
Сообщений: 100
Регистрация: 20-05-10
Из: Omsk
Пользователь №: 57 391

|
Цитата(AndrewN @ Sep 16 2013, 08:30)  Удалось? Ай да Бересфорд... А за пол-итерации можно? Все удалось но только ж...пу отсидел. И еще выполнение операций в фомате float не позволяло пеленговать сигналы приходящие с малым угловым разрешением. И только переход на long double дал результат.
|
|
|
|
|
Aug 12 2014, 17:06
|
Местный
  
Группа: Участник
Сообщений: 336
Регистрация: 7-03-07
Из: Петербург
Пользователь №: 25 961

|
QUOTE (mihalevski @ Jun 26 2014, 10:22)  Все удалось но только ж...пу отсидел. И еще выполнение операций в фомате float не позволяло пеленговать сигналы приходящие с малым угловым разрешением. И только переход на long double дал результат. Ничего, новая отрастёт... А вообще, это прогресс. У вас эрмит 4х4, можно вас попросить для примера привести по паре матриц для больших и малых углов. А разве в TS201 long double отличается от double?
|
|
|
|
Сообщений в этой теме
mihalevski Вычисление собственных векторов Aug 1 2013, 03:49   Xenia Цитата(mihalevski @ Jun 26 2014, 11:22) В... Jun 27 2014, 11:44    mihalevski Цитата(Xenia @ Jun 27 2014, 18:44) Оно и ... Jun 27 2014, 13:33 mihalevski Цитата(mihalevski @ Aug 1 2013, 10:49) Им... Aug 1 2013, 16:53 iiv Цитата(mihalevski @ Aug 1 2013, 09:49) По... Aug 1 2013, 17:01 mihalevski Цитата(iiv @ Aug 2 2013, 00:01) проще все... Aug 4 2013, 06:46  iiv Цитата(mihalevski @ Aug 4 2013, 12:46) Эт... Aug 4 2013, 19:57   Kluwert Цитата(iiv @ Aug 4 2013, 23:57) Пусть Ваш... Aug 11 2013, 19:23    iiv 2 Kluwert, не буду с Вами дискутировать, видя у Ва... Aug 13 2013, 08:26   mihalevski Цитата(iiv @ Aug 5 2013, 02:57) да, тогда... Aug 13 2013, 17:46    iiv Цитата(mihalevski @ Aug 13 2013, 23:46) д... Aug 14 2013, 00:41 Major ЦитатаИ только переход на long double дал результа... Jun 27 2014, 04:04
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|