Купить Matlab | Mathematica | Mathcad | Maple | Statistica | Другие пакеты | ![]() |
Internet-класс | Примеры | Методики | Форум | Download | |
![]() |
|
|
Синтаксис: s = svd(A) Описание: Если A - действительная матрица размера m х n (m >= n), то ее можно представить в виде [1]: A = U * S * VT, где UTU = V * VT = In и S = diag(s1, ...sn). Такое разложение называется сингулярным разложением матрицы A. Матрица U сформирована из n ортонормированных собственных векторов, соответствующих n наибольшим собственным значениям матрицы AAT, а матрица V - из ортонормированных собственных векторов матрицы ATA. Диагональные элементы матрицы S - неотрицательные значения квадратных корней из собственных значений матрицы ATA; они называются сингулярными числами. Допустим, что s1>= s2 >=... >= sn >= 0. Если ранг матрицы A равен r, то значения sr+1 = sr+2 = ... = sn = 0. Существует другое, более экономное сингулярное разложение: A = Ur * Sr * VrT, где UrTUr = Vr * VrT = Ir и Sr = diag(s1, ..., sr). Функция s = svd(A) вычисляет только сингулярные числа матрицы A. Функция [U, S, V] = svd(A) вычисляет диагональную матрицу S тех же размеров, которые имеет и матрица A с неотрицательными диагональными элементами в порядке их убывания, а также унитарные матрицы преобразований U и V. Функция [U, S, V] = svd(A, 0) выполняет экономное сингулярное разложение. Пример 1: Рассмотрим прямоугольную матрицу размера 4 х 2. A =
Полное сингулярное разложение [U, S, V] = svd(A)
Экономное сингулярное разложение [U, S, V] = svd(A, 0)
Пример 2: Рассмотрим матрицу порядка 5, которая в пределах ошибок округления имеет только нулевые собственные значения [2]. A = chebspec(5)
[U, S, V] = svd(A^3)
Из анализа графиков следует, что 3 сингулярных числа имеют значения меньше 10-14 и существенно отличаются от остальных; собственные значения находятся в круге радиусом 0.5 * 10-6, то есть являются кратными. Дефект матрицы A3 равен трем. В рассматриваемом случае это означает, что имеется 3 клетки Жордана, порядок которых пока неизвестен. Применяя пакет прикладных программ JORD [3], можно установить, что в данном случае имеется одна клетка первого и две клетки второго порядка. Алгоритм: Функция svd(A) использует модуль svd пакета LINPACK [4]. Пакет программ JORD можно запросить по следующему адресу электронной почты: potem@mephi.ru. Диагностические сообщения: Если в течение 75 итераций QR-преобразования
сингулярные значения не найдены, выдается
сообщение Ссылки: 1. Уилкинсон, Райнш. Справочник алгоритмов на языке АЛГОЛ. Линейная алгебра: Пер. с англ. М.: Машиностроение, 1976. 390 с. 2. Higham N. J. The Test Matrix Toolbox for MATLAB (version 3.0)//Numerical Analysis Report. Manchester. 1995. Vol. 276. 3. Потемкин В. Г. Пакет программ JORD. М.: МИФИ, 1995. 4. Dongarra J. J., Bunch J. R., Moler C. B., Stewart G. W. LINPACK User’s Guide. Philadelphia, 1979. |
| На первую страницу | Поиск | Купить Matlab | |
|
|