Матрица коммутации
В математике , особенно в линейной алгебре и теории матриц , матрица коммутации используется для преобразования векторизованной формы матрицы в векторизованную форму ее транспонирования . В частности, матрица коммутации K ( м , н ) — это матрица nm × mn , которая для любой размера m × n матрицы A преобразует vec( A ) в vec( A Т ):
- К ( м , н ) вещь( А ) = вещь( А Т ) .
Здесь vec( A ) — mn × 1 вектор-столбец , полученный путем наложения столбцов A друг на друга:
где А = [ А я , j ]. Другими словами, vec( A ) — это вектор, полученный векторизацией A в порядке по столбцам . Аналогично, vec( A Т ) — вектор, полученный путем векторизации A в порядке строк.
В контексте квантовой теории информации матрицу коммутации иногда называют матрицей замены или оператором замены. [1]
Характеристики
[ редактировать ]- Матрица коммутации представляет собой особый тип матрицы перестановки и, следовательно, ортогональна . В частности, К. ( м , н ) равно , где перестановка закончилась для чего
- Замена А на А Т в определении матрицы коммутации показывает, что K ( м , н ) = ( К ( н , м ) ) Т . Поэтому в частном случае m = n матрица коммутации является инволюцией и симметрична .
- Основное использование матрицы коммутации и источник ее названия - это коммутация произведения Кронекера : для каждой m × n матрицы A и каждой размера r × q матрицы B ,
- Это свойство часто используется при разработке статистики более высокого порядка ковариационных матриц Уишарта. [2]
- Случай n=q=1 для приведенного выше уравнения означает, что для любых векторов-столбцов v,w размеров m,r соответственно,
- Это свойство является причиной того, что эту матрицу называют «оператором обмена» в контексте квантовой теории информации.
- Две явные формы матрицы коммутации таковы: если e r , j обозначает j -й канонический вектор размерности r (т.е. вектор с 1 в j -й координате и 0 в других местах), тогда
- Матрица коммутации может быть выражена в виде следующей блочной матрицы:
- Где p,q запись nxm блочной матрицы K i,j определяется выражением
- Например,
Код
[ редактировать ]Как для квадратных, так и для прямоугольных матриц m
ряды и n
столбцы, матрица коммутации может быть сгенерирована с помощью приведенного ниже кода.
Питон
[ редактировать ]import numpy as np
def comm_mat(m, n):
# determine permutation applied by K
w = np.arange(m * n).reshape((m, n), order="F").T.ravel(order="F")
# apply this permutation to the rows (i.e. to each column) of identity matrix and return result
return np.eye(m * n)[w, :]
Альтернативно, версия без импорта:
# Kronecker delta
def delta(i, j):
return int(i == j)
def comm_mat(m, n):
# determine permutation applied by K
v = [m * j + i for i in range(m) for j in range(n)]
# apply this permutation to the rows (i.e. to each column) of identity matrix
I = [[delta(i, j) for j in range(m * n)] for i in range(m * n)]
return [I[i] for i in v]
МАТЛАБ
[ редактировать ]function P = com_mat(m, n)
% determine permutation applied by K
A = reshape(1:m*n, m, n);
v = reshape(A', 1, []);
% apply this permutation to the rows (i.e. to each column) of identity matrix
P = eye(m*n);
P = P(v,:);
Р
[ редактировать ]# Sparse matrix version
comm_mat = function(m, n){
i = 1:(m * n)
j = NULL
for (k in 1:m) {
j = c(j, m * 0:(n-1) + k)
}
Matrix::sparseMatrix(
i = i, j = j, x = 1
)
}
Пример
[ редактировать ]Позволять обозначаем следующее матрица:
имеет следующие векторизации по столбцам и по строкам (соответственно):
Соответствующая матрица коммутации
(где каждый обозначает ноль). Как и ожидалось, справедливо следующее:
Ссылки
[ редактировать ]- Ян Р. Магнус и Хайнц Нойдекер (1988), Матричное дифференциальное исчисление с приложениями в статистике и эконометрике , Wiley.