Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
methodIndicationsIAD_v_0_4.doc
Скачиваний:
2
Добавлен:
01.07.2025
Размер:
4 Mб
Скачать

4. Многомерные матрицы (массивы)

Система MATLAB позволяет вводить матрицы динамической размерности, пример задания трехмерной матрицы представлен ниже.

Пример

>> F = 5*ones(3,3,2)

F(:,:,1) =

5 5 5

5 5 5

5 5 5

F(:,:,2) =

5 5 5

5 5 5

5 5 5

Сумма многомерных матриц равна:

Операция нахождения суммы двух данных p-мерных матриц одного и того же порядка называется сложением этих матриц: A+B=C. Операция сложения многомерных матриц обладает коммутативным и ассоциативным свойствами:

A+B=B+A, (A+B)+C=A+(B+C),

где A, B, C ‑ любые матрицы одного и того же числа измерений и одного и того же порядка.

Произведением матрицы A на число t называется матрица:

Таким образом, имеем: tA=B. В частности, если t=1 или t=0, то 1A=A, 0A=0. Из определения умножения многомерной матрицы на число вытекают следующие свойства этой операции:

t(A+B)=tA+tB,(t+u)A=tA+uA,t(uA)=(tu)A,

где A и B произвольные матрицы одного и того же числа измерений и одного и того же порядка над полем P, а t и u ‑ числа из поля P.

5. Сингулярное разложение многомерной матрицы

Можно представить произвольную исходную многомерную матрицу через компоненты сингулярного разложения в виде:

A=s1Z1BX1Y1T+ s2Z2BX2Y2T+…+ sPZPBXPYPT,

где

si=XiTAYiZiB, YiTYi=1, XiTXi=1, ZiTBZiB=1, i=1,2,…p,

ранг матрицы, s1 s2 s3   sp0  ранжированные сингулярные числа матрицы A; Yi,Xi,Zi — соответственно нормированные левый, правый и глубинный сингулярные векторы.

При помощи следующей сходящейся итеративной процедуры можно вычислить сингулярные векторы Y, X, Z:

где p=0,1,2… номер итерации,  — выбранная норма. При этом для любого p=0,1,2… выполняется равенство:

spZB=XpTApYp.

После вычисления максимального сингулярного числа и соответствующих сингулярных векторов формируется соответствующая многомерная матрица

A(1)=A-s1Z1BX1Y1T,

для которой с использованием вышеприведенной вычислительной процедуры определяются максимальное сингулярное число и соответствующие сингулярные векторы.

Эти же итерации используются и для матрицы A(p), равной:

A(p)=A-s1Z1BX1Y1T-…-spZpBXpYpT .

Рассмотрим на примере сингулярное разложение заданной трехмерной матрицы.

Пример

Пусть задана исходная двухмерная матрица вида:

Для определения максимального сингулярного числа матрицы A, правого, левого и глубинного сингулярных векторов использована вышеприведенная итеративная процедура. В результате вычисления получены следующие результаты:

Первая компонента в разложении равна:

Сформируем вспомогательную матрицу A2=A1-s1Z1BX1Y1T:

.

Аналогично предыдущему случаю, вычисляем соответствующие максимальное сингулярное число, правый, левый и глубинный сингулярные векторы матрицы A2:

.

С учетом найденных сингулярных компонент их произведение равно:

Аналогично предыдущему сформируем вспомогательную матрицу A3=A2-s2Z2BX2Y2T которая имеет вид:

Сингулярное разложение многомерной матрицы осуществляется при помощи описанного выше алгоритма, представлено в файле mainSVD3d.p. Для того, чтобы получить сингулярное разложение многомерной матрицы, необходимо ознакомиться с документацией данной функции (например, при помощи команды help mainSVD3d), вызвать данную функцию, передавая ей соответствующие параметры.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]