2014 dxdy logo

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

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




 
 SVD разложение
Сообщение16.04.2012, 20:01 
Аватара пользователя
Цитата:
Любая матрица порядка , элементы которой — комплексные числа, может быть представлена в
следующем виде, называемом сингулярным разложением матрицы
из википедии.

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

 
 
 
 Re: SVD разложение
Сообщение16.04.2012, 21:01 
Аватара пользователя
Например, из Уилкисон и Райнш, "Справочник алгоритмов на языке Алгол-60"
Там QR, примерно как для собственных значений.
Ну, или можно посчитать $A^TA$, для полученной матрицы посчитать собственные значения и вектора, сингулярные числа равны корням квадратным из собственных данной матрицы, один набор сингулярных векторов совпадает с собственными векторами данной матрицы, другой получается очевидным образом (потеря точности, так что оправдано если надо быстро, просто, но можно неточно).

 
 
 
 Re: SVD разложение
Сообщение24.05.2012, 19:11 
Аватара пользователя
Это снова я.
Переписал алгоритм 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 
Pavia в сообщении #575731 писал(а):
1. Почему результат собственных значений отличается от результата SVD?

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

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

 
 
 
 Re: SVD разложение
Сообщение25.05.2012, 17:41 
Pavia в сообщении #575731 писал(а):
Почему результат собственных значений отличается от результата SVD?
Просто я думал что они одинаковые

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

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

(Оффтоп)

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

 
 
 [ Сообщений: 6 ] 


Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group