Математика / Линейная алгебра
Векторизация AXB: тождество с произведением Кронекера
При укладке столбцов матрицы X в один вектор двустороннее умножение AXB превращается в обычное линейное преобразование. Его матрица равна Bᵀ⊗A.
Формула
Для X=[[1,2],[3,4]] сначала читают первый столбец 1,3, затем второй 2,4. Это соглашение используется в формуле.
Обозначения
- $A$
- левая матрица размера m×n
- $X$
- переменная матрица размера n×p
- $B$
- правая матрица размера p×q
- $vec(X)$
- вектор длины np, полученный последовательной укладкой столбцов
- $Bᵀ⊗A$
- матрица оператора размера mq×np
Условия применения
Размеры согласованы: AXB имеет m строк и q столбцов. Оператор vec укладывает именно столбцы сверху вниз, начиная с первого столбца. В формуле используется обычное транспонирование B, без комплексного сопряжения; алгебраическое тождество верно и для комплексных элементов.
Ограничения
При укладке по строкам формула меняется, поэтому нельзя молча использовать другой порядок reshape в программе. Явная матрица Bᵀ⊗A может быть намного больше исходных множителей. Тождество не требует обратимости и само по себе не доказывает существования единственного решения матричного уравнения.
Подробное объяснение
Возьмём столбец j результата AXB. Он равен A, умноженной на линейную комбинацию столбцов X с коэффициентами из j-го столбца B. Значит, в большой матрице перед соответствующим столбцом X должен стоять блок b_kjA. Именно так устроено произведение Bᵀ⊗A.
Транспонирование появляется потому, что столбец B становится строкой блоков. Это можно увидеть без запоминания формулы: блок с индексами j,k берёт коэффициент b_kj. Если заменить Bᵀ на B, коэффициенты у несимметричной правой матрицы попадут не в те позиции.
Векторизация не изменяет значения элементов, но меняет способ их адресации. Для X=[[1,2],[3,4]] столбцовая укладка даёт(1,3,2,4)ᵀ. Вектор(1,2,3,4)ᵀ соответствует укладке строк и в основной формуле недопустим без перестановочных матриц.
Когда нужно решить AXB=C, тождество задаёт линейную систему по элементам X. Но для численного решения часто лучше работать с A и B напрямую: большая кронекерова матрица может содержать множество элементов, которые нет необходимости хранить. Компактная математическая запись не обязана совпадать с эффективной программной реализацией.
Проверка на несимметричной B особенно полезна. На диагональных или единичных примерах ошибочное отсутствие транспонирования может остаться незамеченным. Поэтому контроль должен включать хотя бы один случай с разными внедиагональными элементами и явно заданным порядком vec.
Как пользоваться формулой
- Запишите размеры A,X,B и результата AXB; определите длину входного вектора np и длину выходного вектора mq.
- Уложите столбцы X друг под другом, не меняя порядка элементов внутри столбца и не используя привычную укладку строк.
- Транспонируйте B и постройте блоки Bᵀ⊗A; каждый коэффициент транспонированной матрицы умножает всю матрицу A.
- Умножьте на vec(X) и независимо вычислите AXB; после столбцовой укладки результата оба вектора должны совпасть.
Историческая справка
Векторизация связывает матричную запись с линейными системами по всем элементам неизвестного массива. Вместе с произведением Кронекера она стала стандартным инструментом матричного исчисления и статистических вычислений. У тождества важно не отдельное имя автора, а явно установленное соглашение о порядке укладки.
Заметка Томаса Минка 2000 года выделяет Kronecker product and vec в отдельный раздел и использует эти операции при преобразовании матричных дифференциалов. Лекция MIT2023 года связывает произведения Кронекера с якобианами. В таком контексте тождество помогает перейти от компактного выражения AXB к обычной матрице производных без потери порядка координат.
Историческая линия формулы
Приведённая запись относится к общему аппарату vec и произведений Кронекера. Современные учебные источники фиксируют столбцовую укладку, но в программных системах существуют другие соглашения. Поэтому корректность определяется согласованностью порядка элементов, а не одним названием операции.
Пример
Пусть A=diag(2,3), X=[[1,2],[3,4]], B=[[1,1],[0,1]]. Сначала AX=[[2,4],[9,12]], затем AXB=[[2,6],[9,21]]. Следовательно vec(AXB)=(2,9,6,21)ᵀ. Столбцовая укладка X даёт(1,3,2,4)ᵀ. Так как Bᵀ=[[1,0],[1,1]], большая матрица состоит из блоков[[A,0],[A,A]]. Она переводит первые два элемента в(2,9), а последние два в A(1,3)ᵀ+A(2,4)ᵀ=(6,21). Ответ: оба способа дают(2,9,6,21)ᵀ. Проверка размеров: оператор 4×4 действует на вектор длины 4. Несимметричность B нужна в этом примере для контроля транспонирования: ошибочная замена Bᵀ на B даст другую первую блочную строку и неверный результат.
Частая ошибка
Не укладывайте X по строкам при формуле для столбцов. Не теряйте транспонирование B: правое умножение формирует строки блоков из столбцов B. Не вводите комплексное сопряжение без изменения задачи. Не стройте огромную кронекерову матрицу только ради применения оператора, когда два обычных умножения экономнее.
Практика
Задачи с решением
Только левое умножение
Условие. Если B=I₂, какой оператор действует на vec(X)?
Решение. Bᵀ=I₂, поэтому оператор I₂⊗A имеет две диагональные копии A.
Ответ. I₂⊗A.
Размеры системы
Условие. A имеет 2×3, X имеет 3×4, B имеет 4×5. Найдите размер матрицы Bᵀ⊗A.
Решение. Вход vec(X) имеет 12 элементов, выход vec(AXB) имеет 10. Матрица имеет 5·2 строк и 4·3 столбцов.
Ответ. 10×12.
Дополнительные источники
- https://tminka.github.io/papers/matrix/minka-matrix.pdf
- https://ocw.mit.edu/courses/18-s096-matrix-calculus-for-machine-learning-and-beyond-january-iap-2023/resources/ocw_18s096_lecture03-part1_2023jan23_mp4/
Связанные формулы
Математика
Произведение Кронекера: построение блочной матрицы
Произведение Кронекера заменяет каждый элемент матрицы A блоком a_ijB. Если размеры исходных матриц m×n и p×q, результат имеет размер mp×nq.
Математика
Матричное произведение
Матричное произведение строит элемент новой матрицы как скалярное произведение строки первой матрицы и столбца второй. Порядок множителей важен.
Математика
Матричная форма системы линейных уравнений
Матричная форма Ax = b записывает систему линейных уравнений как произведение матрицы коэффициентов на столбец неизвестных. Такая запись позволяет решать систему не как набор отдельных строк, а как единый линейный объект.