linalg:: kroneckerProductКронекеров продукт матриц
Блокноты MuPAD® будут демонтированы в будущем релизе. Используйте live скрипты MATLAB® вместо этого.
Live скрипты MATLAB поддерживают большую часть функциональности MuPAD, хотя существуют некоторые различия. Для получения дополнительной информации смотрите, Преобразовывают Notebook MuPAD в Live скрипты MATLAB.
linalg::kroneckerProduct(A, <B, …>)
linalg::kroneckerProduct(A, B) вычисляет Кронекеров продукт двух матриц A и B.
Кронекеров продукт (прямое матричное произведение) m ×n матричный A и p ×q матричный B (m p) × (n q) матрица
, данная в клеточном виде как
.
Покомпонентно:
с I = p (i - 1) + k, J = q (j - 1) + l.
Если A и B являются матрицами той же матричной области с тем же звонком компонента, результатом является матрица того же типа как A и B. Если области или звонки компонента A и B отличаются, linalg::kroneckerProduct пытается преобразовать B в доменный тип A A::dom::coerce. Если это перестало работать, преобразование A к доменному типу B предпринято. Если никакое преобразование не возможно, ошибка повышена.
Обратите внимание на то, что Кронекеров продукт только реализован для матриц по областям Dom::Matrix, Dom::SquareMatrix или Dom::MatrixGroup. В частности, это включает матрицы, созданные matrix.
Вызов больше чем с двумя аргументами производит linalg::kroneckerProduct(A, B, C) = linalg::kroneckerProduct(linalg::kroneckerProduct(A, B), C) и т.д.
Вызов только с одним аргументом возможен. Это возвращает входную матрицу.
Мы считаем две матрицы A и B с символьными компонентами:
A:= matrix([[a11, a12], [a21, a22]]); B:= matrix([[b11, b12, b13], [b21, b22, b23]]);
![]()
![]()
Кронекеров продукт A и B вычисляется путем умножения матричного B с каждым из компонентов матричного A. Получившаяся блочная матрица возвращена как матрица большей размерности:
linalg::kroneckerProduct(A, B);

delete A, B:
n ×n матричный H с компонентами в {-1, 1} называется матрицей Адамара, если H, умноженный с транспонировать, равняется временам n n ×n единичная матрица. Матричный H, заданный ниже, является матрицей Адамара:
H:= matrix([[1, 1], [1, -1]]); H * linalg::transpose(H) = 2 * matrix::identity(2);
![]()
![]()
Матрицы Адамара играют роль в области кодов с коррекцией ошибок. Основное свойство этого типа матриц состоит в том, что Кронекеровым продуктом двух матриц Адамара является снова матрица Адамара. Мы проверяем этот оператор для матричного H:
H2:= linalg::kroneckerProduct(H, H);

Действительно, матричный H2 снова матрица Адамара:
H2 * linalg::transpose(H2) = 4 * matrix::identity(4);

delete H, H2:
|
Матрицы областей |
Матрица того же типа как A или B.