exponenta event banner

kron

Тензорное изделие Кронекера

Синтаксис

Описание

пример

K = kron(A,B) возвращает тензорное произведение Кронекера матриц A и B. Если A является mоколо-n матрица и B является pоколо-q матрица, затем kron(A,B) является m*pоколо-n*q матрица, образованная путем взятия всех возможных продуктов между элементами A и матрица B.

Примеры

свернуть все

Создайте диагональную матрицу блока.

Создайте единичную матрицу 4 на 4 и матрицу 2 на 2, которые необходимо повторить по диагонали.

A = eye(4);
B = [1 -1;-1 1];

Использовать kron найти тензорный продукт Кронекера.

K = kron(A,B)
K = 8×8

     1    -1     0     0     0     0     0     0
    -1     1     0     0     0     0     0     0
     0     0     1    -1     0     0     0     0
     0     0    -1     1     0     0     0     0
     0     0     0     0     1    -1     0     0
     0     0     0     0    -1     1     0     0
     0     0     0     0     0     0     1    -1
     0     0     0     0     0     0    -1     1

В результате получается блок-диагональная матрица 8 на 8.

Расширяйте размер матрицы, повторяя элементы.

Создайте матрицу 2 на 2 и матрицу 2 на 3, элементы которой необходимо повторить.

A = [1 2 3; 4 5 6];
B = ones(2);

Расчет тензорного продукта Кронекера с помощью kron.

K = kron(A,B)
K = 4×6

     1     1     2     2     3     3
     1     1     2     2     3     3
     4     4     5     5     6     6
     4     4     5     5     6     6

Результатом является матрица блоков 4 на 6.

В этом примере визуализируется разреженная матрица оператора Лапласа.

Матричное представление дискретного лапласианского оператора на двумерном, nоколо- n сетка является n*nоколо- n*n разреженная матрица. В каждой строке или столбце имеется не более пяти ненулевых элементов. Можно создать матрицу как произведение Кронекера одномерных разностных операторов. В этом примере n = 5.

n = 5;
I = speye(n,n);
E = sparse(2:n,1:n-1,1,n,n);
D = E+E'-2*I;
A = kron(D,I)+kron(I,D);

Визуализация разреженности с помощью spy.

spy(A,'k')

Figure contains an axes. The axes contains an object of type line.

Входные аргументы

свернуть все

Входные матрицы, указанные как скаляры, векторы или матрицы. Если либо A или B разрежен, то kron умножает только ненулевые элементы, и результат также разрежен.

Типы данных: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | logical
Поддержка комплексного номера: Да

Подробнее

свернуть все

Тензор Кронекера

Если A является mоколо-n матрица и B является pоколо-q матрица, затем тензорное произведение Кронекера A и B - большая матрица, образованная умножением B по каждому элементу A

A⊗B=[a11Ba12B⋯a1nBa21B⋮a22B⋮⋯⋱a2nB⋮am1Bam2B⋯amnB].

Например, две простые матрицы 2 на 2 создают

A=[1−2−10],    B=[4−323]A⊗B=[1 · 41 · −3−2 · 4−2 · −31 · 21 · 3−2 · 2−2 · 3−1 · 4−1 · −30 · 40 · −3−1 · 2−1 · 30 · 20 · 3]=[4−3−8623−4−6−4300−2−300].

Расширенные возможности

Создание кода C/C + +
Создайте код C и C++ с помощью MATLAB ® Coder™

..

См. также

| | |

Представлен до R2006a