где si –сингулярные числа матрицы A, Ui, Vi– соответственно, правые и левые сингулярные векторы, r –ранг матрицы. Эти сингулярные числа и сингулярные векторы удовлетворяют следующим соотношениям:
s1 ³ s2 ³…,sr ³ 0, si = UiT AVi, UiTUi = 1, ViT Vi = 1,
i = 1,….,r. (3)
Известно, что процессы сингулярного разложения для любой вещественной матрицы А обладают весьма полезными свойствами для теории и приложений, а именно, каждая матрица над полем вещественных чисел имеет вещественные сингулярные числа и векторы. Кроме того, сингулярное разложение матриц устойчиво к малым возмущениям матриц, т.е. сингулярное разложение каждой матрицы является хорошо обусловленной процедурой.
Относительно практических аспектов, сингулярное разложение матрицы в общем случае может быть получено по достаточно простой и надежной схеме:
VT(k+1) = UT(k)A,
V(k+1) = V(k+1)/ /V(k+1)/
U(k+1) = AV(k+1), U(k+1) = U(k+1)/ /U(k+1)/ (4)
sk = UTkAVk, /sk+1 – sk/ ≤ ε
где k=0,1,2,... – номер итерации, |U(k+1)| - любая векторная норма, e - заданная точность вычисления. Можно показать, что для произвольных начальных векторов U(0) , V(0) итерации по схеме (4) сходятся в общем случае к сингулярным векторам U, V, соответствующим максимальному сингулярному числу smax= UTAV.
Следуют отметить, что такие свойства не свойственны спектральному разложению, которое в действительности формирует основу для многомерного статистического анализа. В отличие от сингулярного разложения матриц, собственные числа и собственные векторы спектрального разложения являются вещественными только для вещественных симметрических матриц, в общем случае не симметрические вещественные матрицы обладают комплексным спектром и определить его не просто.
С использованием вышеприведенного итеративного алгоритма (4) сингулярное разложение матрицы А, представленное в форме (2,3) может быть получено с использованием метода исчерпывания.
Сущность этого метода заключается в следующем:
· максимальное сингулярное число и соответствующие ему правый и левый сингулярный векторы матрицы А вычисляются с помощью итеративного алгоритма (4). Формируется матричная компонента А1 =s1U1VT1;
· формируется матрица невязки
А2 = А ‑ А1 = А ‑ s1U1VT1, (5)
для которой максимальное сингулярное число и соответствующие ему правый и левый сингулярный векторы матрицы А2вычисляются с помощью итеративного алгоритма (4) и т.д.
Цель работы: создание программного модуля для сингулярного разложения произвольной матрицы.
1. Открыть универсальную систему MATLAB.
2. Задать исходную матрицу А размерности (3 х 4).
3. Используя команду для сингулярного разложения MATLAB, получить представление для матрицы А через сингулярные числа, правые и левые сингулярные векторы в покомпонентной (в виде 2, 3) и в векторно-матричной формах (в виде 1).
4. Проверить условия ортогональности для вышеперечисленных форм представления.
5. Реализовать итеративную процедуру (4) вычисления максимального сингулярного числа и соответствующих ему правого и левого сингулярных векторов при произвольно заданных начальных значениях левого сингулярного вектора U0 и правого сингулярного вектора V0. Вычислить матричную компоненту, соответствующую найденным максимальному сингулярному числу и соответствующим ему правому и левому сингулярным векторам.
6. Используя процедуру метода исчерпывания, получить матричную невязку вида (5), для которой выполнить все перечисленные операции пункта 4.
7. Сохранить все результаты выполнения работы в файле на диске.
В соответствии с п.2 формируем произвольную матрицу А размерности (3×4) с помощью генератора случайных чисел: A=rand(3,4), проверяем условия ортогональности: U*UT, V*VT:
Получаем представление в покомпонентной форме:
- для первого слагаемого в (2) формируем следующие компоненты сингулярного разложения: первый левый сингулярный вектор ‑ U1=U(:,1), первое сингулярное число ‑ S1=S(1,1), первый правый сингулярный вектор ‑ V1=V(:,1), с использованием полученных компонент формируем первое слагаемое в (2): S1*U1*V1T;
- аналогично формируем компоненты сингулярного разложения для второго слагаемого: U2=U(:,2), S2=S(2,2), V2=V(:,2). Вычисляем второе слагаемое S2*U2*V2T и т.д.
В соответствии с п.4 для реализации итеративной процедуры вычисления максимального сингулярного числа и соответствующих правого и левого сингулярных векторов задаем исходные данные: матрицу А размерности (3×4), произвольные: левый сингулярный вектор U0 размерности (3×1), правый сингулярный вектор V0 размерности (4×1), число, характеризующее точность вычисления epsilon = 0.01. По заданным исходным данным вычисляем значение сингулярного числа S0=U0T*A*V0. Итеративный алгоритм включает следующие шаги:
Шаг 1. V1T=U0T*A, V1= V1/norm(V1) – вычисление правого сингулярного вектора и его нормировка;
U1=A*V1, U1=U1/norm(U1)‑ вычисление левого сингулярного вектора и его нормировка;
S1=U1T*A*V1 – вычисление сингулярного числа;
/S1-S0/≤epsilon=0.01 – проверка точности определения сингулярного числа, если условие выполняется, то вычисленные компоненты запоминаются, как первые компоненты сингулярного разложения, в противном случае переходим к шагу 2.
Шаг 2. V2T=U1T*A, V2/norm(V2) – вычисление правого сингулярного вектора и его нормировка;
U2=A*V2, U2=U2/norm(U1)‑ вычисление левого сингулярного вектора и его нормировка;
S2=U2T*A*V2 – вычисление сингулярного числа;
/S2-S1/≤epsilon=0.01 – проверка точности вычисления сингулярного числа и т.д.
Рисунок 13
После первой итерации модуль разности двух последующих сингулярных чисел не удовлетворяет заданной точности вычисления, поэтому необходимо следующие шаги до тех пор, пока неравенство не будет удовлетворено.
Отчетом о лабораторной работе №2 является файл с именем, совпадающим с фамилией студента с результатами работы в папке Мои документы/номер группы.
1. Свойство сходимости вычислительной процедуры (4).
2. Преимущество сингулярного разложения матриц перед спектральным разложением матриц.
3. Условие останова итеративного алгоритма вычисления максимального сингулярного числа, правого и левого сингулярного вектора.
4. В чем заключается сущность метода исчерпывания?
5.
6.
7.
8.
9.
10.
3. ВЫЧИСЛИТЕЛЬНАЯ ПРОЦЕДУРА ОБУЧЕНИЯ С ЭКСПЕРТОМ
Пусть имеется сложная система (научная, техническая, экономическая и т.д.), которая может характеризоваться определенным набором признаков Xk, k = 1,2,3,…. Такой произвольный вектор значений признаков можно трактовать как образ, принадлежащий пространству признаков {X}.
Множество образов представляется в виде множества векторов, состоящего из k подмножеств или классов:
z1={X}1 ,..., zk={X}k.
Для процедуры обучения с экспертом исходной информацией служат векторы значений признаков ситуаций по каждому из рассматриваемых эталонных классов и сформированная на основе мнения эксперта обучающая выборка. Исследуя и анализируя указанным образом, ряд таких систем с привлечением эксперта-человека, можно на основании его знаний и личного опыта выстроить классификацию и оценить, к какому из классов принадлежит исследуемый объект. Набор признаков системы, перечисленный выше, эксперт может оценивать либо по 10-бальной системе, либо в пределах от 0 до 1, как в рассматриваемом ниже примере.
На основе полученной информации и с учетом мнения эксперта формируется обучающая выборка, которая представлена в таблице 1.
Таблица 1. Обучающая выборка
Номер объекта | Значения признаков | Классификация эксперта | ||||
z1 | z2 | z3 | zn | |||
1 | 1 | 0,3 | 1 | 1 | 1 | |
2 | 0,1 | 0,6 | 1 | 1 | 2 | |
3 | 0,2 | 0,8 | 0,9 | 0,7 | 3 | |
4 | 0,5 | 1 | 0,7 | 0,1 | 2 | |
: | ||||||
L | 1 | 1 | 0,5 | 0,1 |
Задача обучения сводится к разбиению пространства признаков на классы (т.е. к проведению классификации), а задача распознавания сводится к определению класса zj ={X}j , j=1,...,k, с помощью векторной нормы: