2014 dxdy logo

Научный форум dxdy

Математика, Физика, Computer Science, Machine Learning, LaTeX, Механика и Техника, Химия,
Биология и Медицина, Экономика и Финансовая Математика, Гуманитарные науки




Начать новую тему Ответить на тему
 
 SVD разложение
Сообщение16.04.2012, 20:01 
Аватара пользователя


31/10/08
1244
Цитата:
Любая матрица порядка , элементы которой — комплексные числа, может быть представлена в
следующем виде, называемом сингулярным разложением матрицы
из википедии.

Подскажите каким алгоритмом это делается?

 Профиль  
                  
 
 Re: SVD разложение
Сообщение16.04.2012, 21:01 
Заслуженный участник
Аватара пользователя


11/03/08
9904
Москва
Например, из Уилкисон и Райнш, "Справочник алгоритмов на языке Алгол-60"
Там QR, примерно как для собственных значений.
Ну, или можно посчитать $A^TA$, для полученной матрицы посчитать собственные значения и вектора, сингулярные числа равны корням квадратным из собственных данной матрицы, один набор сингулярных векторов совпадает с собственными векторами данной матрицы, другой получается очевидным образом (потеря точности, так что оправдано если надо быстро, просто, но можно неточно).

 Профиль  
                  
 
 Re: SVD разложение
Сообщение24.05.2012, 19:11 
Аватара пользователя


31/10/08
1244
Это снова я.
Переписал алгоритм SVD из Уилкисон и Райнш, "Справочник алгоритмов на языке Алгол-60".
Появилась несколько вопросов.
1. Почему результат собственных значений отличается от результата SVD?
Просто я думал что они одинаковые и реализовать поиск собственных чисел через SVD, а оказалось не совсем так.
Код:
a[0,0]:=1; a[0,1]:=1; a[0,2]:=3;
a[1,0]:=1; a[1,1]:=2; a[1,2]:=1;
a[2,0]:=3; a[2,1]:=1; a[2,2]:=10;

EigenValue(a);
//Результат (11,080311068, 2,0516557687, -0,13196683656)
SVD(q,u,v,A,True,True);
//Результат (11,080311068, 0,13196683656, 2,0516557687)
Как видно отличие в знаке. Если что в MathCad результат такой же, как у меня в коде.

2. Что делать если условие m>=n не выполняется?
С этим я думаю сам справлюсь.
3. Не могу понять в чём отличие преобразование Хаусхолдера от QR ?
Почему нельзя было сразу привести к диагональному виду используя преобразование Хаусхолдера, вернее почему это не будет SVD разложением?

 Профиль  
                  
 
 Re: SVD разложение
Сообщение25.05.2012, 12:48 


01/07/08
836
Киев
Pavia в сообщении #575731 писал(а):
1. Почему результат собственных значений отличается от результата SVD?

Потому, что $a^2=(-a)^2$
Pavia в сообщении #575731 писал(а):
Не могу понять в чём отличие преобразование Хаусхолдера от QR ?

Преобразование Хаусхолдера - это преобразование отражения. Определитель матрицы равен $-1$.
QR - это специальное представление представление матрицы в виде произведения двух матриц. Наверняка это вам известно. Но вы где то разминулись с курсом линейной алгебры, попробуйте почитать любой современный курс линейной алгебры. Много переводных книг под редакцией Икрамова. С уважением,

 Профиль  
                  
 
 Re: SVD разложение
Сообщение25.05.2012, 17:41 
Заслуженный участник


11/05/08
32166
Pavia в сообщении #575731 писал(а):
Почему результат собственных значений отличается от результата SVD?
Просто я думал что они одинаковые

Они вообще не имеют между собой ничего общего. В сингулярном разложении на диагонали стоят не собственные, а сингулярные числа матрицы $A$, т.е. собственные числа матрицы $\sqrt{A^*A}$. Которые по определению неотрицательны и никакого отношения к собственным числам исходной матрицы не имеют. Кроме случая, когда матрица симметрична (
как в Вашем случае) или хотя бы нормальна; тогда сингулярные числа суть модули собственных.

 Профиль  
                  
 
 Re: SVD разложение
Сообщение26.05.2012, 08:46 


19/05/10

3940
Россия

(Оффтоп)

значок транспонирования не отразился

 Профиль  
                  
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 6 ] 

Модераторы: Karan, Toucan, PAV, maxal, Супермодераторы



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

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


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group