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

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

<math>R=A^T</math>

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

<math>r_{j,i}=a_{i,j}</math>

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

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

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

  • <math> (A^T)^T= A</math>

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

  • <math> (A + B)^T = A^T + B^T</math>

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

  • <math> (AB)^T = B^TA^T</math>

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

  • <math> (\lambda A)^T=\lambda A^T</math>

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

  • <math> \det A = \det A^T</math>

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

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

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

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

<math>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] </math>

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

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

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

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

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


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

 
articles/транспонирование_матрицы.txt · Последнее изменение: d.m.Y H:i — Pavia
 
Recent changes RSS feed Donate Powered by PHP Valid XHTML 1.0 Valid CSS Driven by DokuWiki