Определение транспонирования

Матрица транспонированная к A обозначается как A^T .

R=A^T

Операция транспонирования определена как смена индексов в матрице. Матрица не обязательно квадратная.

r_{j,i}=a_{i,j}

Соответственно изменяется и число строк и столбцов.
Пример,


\begin{bmatrix}
1 & 2 \\
3 & 4 \\
5 & 6 \end{bmatrix}^{\mathrm{T}}  \!\! \;\!
= \,
\begin{bmatrix}
1 & 3 & 5\\
2 & 4 & 6 \end{bmatrix} \;

Свойства транспонированных матриц

  •  (A^T)^T= A

Дважды транспонированная матрица А равна исходной матрице А.

  •  (A + B)^T = A^T + B^T

Транспонированная сумма матриц равна сумме транспонированных матриц.

  •  (AB)^T = B^TA^T

Транспонированное произведение матриц равно произведению транспонированных матриц, взятых в обратном порядке.

  •  (\lambda A)^T=\lambda A^T

При транспонировании можно выносить скаляр.

  •  \det A = \det A^T

Определитель транспонированной матрицы равен определителю исходной матрицы.

Прямой алгоритм транспонирования.

procedure Transpose(var R:TMatrixNM; A:TMatrixNM);
var i,j:Integer;
begin
for i:=0 to RowsCount(A)-1 do
 for j:=0 to ColumnsCount(A)-1 do
  R[j,i]:=A[i,j];
end;

Входные параметры:

  • Прямоугольная матрица A.

Выходные параметры:

  • Прямоугольная матрица R.

Примечание:

  • Память под матрицы A и R должна быть выделена. Матрица R должна иметь число столбцов равное числу строк матрицы A. Матрица R должна иметь число строк равное числу столбцов матрицы A

Блочный алгоритм транспонирования

A^{T}
=\left[\begin{array}{ccccc} A_1 & A_2 \\ A_3 & A_4 \\ \end{array}\right]^{T}
=
\left[\begin{array}{ccccc} A_1^{T} & A_3^{T} \\ A_2^{T} & A_4^{T} \\ \end{array}\right]

Матрица A разбивается на 4 под матрицы A_1, A_2, A_3, A_4. Вначале производиться перестановка подматриц согласно правилу транспонирования, а затем выполняется транспонирования элементов подматриц. Алгоритм продолжается рекурсивно до тех пор пока прямой алгоритм не будет быстрее или не останется 1 элемент.

Блочный алгоритм транспонирования применяется для ускорения транспонирования. Когда доступ к элементам последовательно быстрее чем в произвольном порядке. В современном компьютере есть система кэшей разных уровней, что создаёт такую неравномерность в скорость.

Наиболее наглядную демонстрацию можно получить для больших матриц не помещающихся в RAM и хранящихся на HDD.

Алгоритм транспонирования на месте.

Алгоритм транспонирования на месте или алгоритм без использования дополнительной памяти.


Список литературы:
[1] Т.С. Хуанг -Быстрые алгоритмы в цифровой обработке изображений.
библиотека Гугл
[2] Р.Хорн, Ч.Джонсон. -Матричный анализ.-Мир(1989)
стр. 18. Глава 0.2.5

 
articles/транспонирование_матрицы.txt · Последние изменения: 2013/05/25 23:24 От Pavia
 
Recent changes RSS feed Donate Powered by PHP Valid XHTML 1.0 Valid CSS Driven by DokuWiki