Векторизация (математика)
В математике , особенно в линейной алгебре — это линейное преобразование , и теории матриц, векторизация матрицы которое преобразует матрицу в вектор . В частности, векторизация размера m × n матрицы A , обозначаемая vec( A ), представляет собой вектор-столбец размера mn × 1, полученный путем наложения столбцов матрицы A друг на друга: Здесь, представляет элемент в i -й строке и j -м столбце A , а верхний индекс обозначает транспонирование . Векторизация выражает через координаты изоморфизм между ними (т.е. матриц и векторов) как векторные пространства.
Например, для матрицы 2×2 , векторизация .

Связь между векторизацией A и векторизацией его транспонирования задается матрицей коммутации .
Совместимость с продукцией Kronecker
[ редактировать ]Векторизация часто используется вместе с произведением Кронекера для выражения умножения матриц как линейного преобразования матриц. В частности, для матриц A , B и C размерностей k × l , l × m и m × n . [примечание 1] Например, если ( присоединенный эндоморфизм алгебры Ли gl( n , C ) всех матриц размера n × n с комплексными элементами), тогда , где — n × n единичная матрица размера .
Есть еще две полезные формулы:
В более общем плане было показано, что векторизация представляет собой самоприсоединение в моноидальной замкнутой структуре любой категории матриц. [1]
Совместимость с продуктами Адамара
[ редактировать ]Векторизация - это гомоморфизм алгебры из пространства матриц размера n × n с произведением Адамара (поэлементно) в C н 2 с произведением Адамара:
Совместимость с внутренними продуктами
[ редактировать ]Векторизация - это унитарное преобразование пространства матриц размера n × n со Фробениуса (или Гильберта – Шмидта ) скалярным произведением в C н 2 : где верхний индекс † обозначает сопряженное транспонирование .
Векторизация как линейная сумма
[ редактировать ]Операцию векторизации матрицы можно записать в виде линейной суммы. Пусть X — матрица размера m × n , которую мы хотим векторизовать, и пусть i — e i -й канонический базисный вектор для n -мерного пространства, то есть . Пусть B i будет блочной матрицей ( mn ) × m , определенной следующим образом:
B i состоит из n блочных матриц размера m × m , сложенных по столбцам, и все эти матрицы нулевые, за исключением i й , которая представляет собой m размером m × m единичную матрицу I . -
Тогда векторизованную версию X можно выразить следующим образом:
Умножение X на ei - извлекает i й столбец, а умножение на B i помещает его в желаемую позицию в конечном векторе.
Альтернативно линейную сумму можно выразить с помощью произведения Кронекера :
Полувекторизация
[ редактировать ]Для симметричной матрицы A вектор vec( A ) содержит больше информации, чем строго необходимо, поскольку матрица полностью определяется симметрией вместе с нижней треугольной частью, то есть n ( n + 1)/2 элементов на и ниже главной диагонали . Для таких матриц полувекторизация иногда более полезна, чем векторизация. Половекторизация vech( A ) симметричной n × n матрицы A представляет собой вектор-столбец n ( n + 1)/2 × 1, полученный путем векторизации только нижней треугольной части A :
Например, для матрицы 2×2 , полувекторизация .
Существуют уникальные матрицы, преобразующие полувекторизацию матрицы в ее векторизацию и наоборот, называемые соответственно матрицей дублирования и матрицей исключения .
Язык программирования
[ редактировать ]Языки программирования, реализующие матрицы, могут иметь простые средства векторизации.В Matlab / GNU Octave матрица A
может быть векторизован с помощью A(:)
. GNU Octave также позволяет векторизацию и полувекторизацию с помощью vec(A)
и vech(A)
соответственно. У Юлии есть vec(A)
функция также.В Python массивы NumPy реализуют flatten
метод, [примечание 1] в то время как в R желаемый эффект может быть достигнут за счет c()
или as.vector()
функции. В R функция vec()
пакета «ks» позволяет векторизацию и функции vech()
реализованная в обоих пакетах «ks» и «sn», допускает полувекторизацию. [2] [3] [4]
Приложения
[ редактировать ]Векторизация используется в матричном исчислении и его приложениях для установления, например, моментов случайных векторов и матриц, асимптотик, а также матриц Якобиана и Гессе. [5] Его также используют в местной чувствительности и статистической диагностике. [6]
Примечания
[ редактировать ]- ↑ Перейти обратно: Перейти обратно: а б Идентичность для векторизации по строкам: .
См. также
[ редактировать ]- Матрицы дублирования и исключения
- Обозначение Фойгта
- Упакованная матрица хранения
- Столбец-основной порядок
- Матризация
Ссылки
[ редактировать ]- ^ Маседо, HD; Оливейра, JN (2013). «Ввод линейной алгебры: подход, ориентированный на бипродукты». Наука компьютерного программирования . 78 (11): 2160–2191. arXiv : 1312.4818 . дои : 10.1016/j.scico.2012.07.012 . S2CID 9846072 .
- ^ Дуонг, Тарн (2018). «ks: Сглаживание ядра» . Пакет R версии 1.11.0 .
- ^ Аззалини, Адельчи (2017). «Пакет R 'sn': Skew-Normal и родственные дистрибутивы, такие как Skew-t» . Пакет R версии 1.5.1 .
- ^ Винод, Хришикеш Д. (2011). «Одновременное сокращение и накопление Vec» . Практическое занятие по матричной алгебре с использованием R: активное и мотивированное обучение с приложениями . Сингапур: World Scientific. стр. 233–248. ISBN 978-981-4313-69-8 – через Google Книги .
- ^ Магнус, Ян; Нойдекер, Хайнц (2019). Матричное дифференциальное исчисление с приложениями в статистике и эконометрике . Нью-Йорк: Джон Уайли. ISBN 9781119541202 .
- ^ Лю, Шуанчжэ; Лейва, Виктор; Чжуан, Дэн; Ма, Тифенг; Фигероа-Суньига, Хорхе И. (март 2022 г.). «Матричное дифференциальное исчисление с приложениями в многомерной линейной модели и ее диагностика» . Журнал многомерного анализа . 188 : 104849. doi : 10.1016/j.jmva.2021.104849 .