Main Content

kron

Producto tensorial de Kronecker

Descripción

ejemplo

K = kron(A,B) devuelve el producto tensorial de Kronecker de las matrices A y B. Si A es una matriz de m por n y B es una matriz de p por q, entonces kron(A,B) es una matriz de m*p por n*q formada tomando todos los productos posibles entre los elementos de A y la matriz B.

Ejemplos

contraer todo

Cree una matriz diagonal por bloques.

Cree una matriz identidad de 4 por 4 y una matriz de 2 por 2 que desee que se repita a lo largo de la diagonal.

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

Utilice kron para encontrar el producto tensorial de Kronecker.

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

El resultado es una matriz diagonal por bloques de 8 por 8.

Expanda el tamaño de una matriz repitiendo elementos.

Cree una matriz de 2 por 2 de unos y una matriz de 2 por 3 cuyos elementos desee repetir.

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

Calcule el producto tensorial de Kronecker utilizando 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

El resultado es una matriz por bloques de 4 por 6.

Este ejemplo mestra una matriz laplaciana dispersa.

La representación de matriz del operador laplaciano discreto en una cuadrícula bidimensional n por n es una matriz dispersa n*n por n*n. Hay un máximo de cinco elementos distintos de cero en cada fila o columna. Puede generar la matriz como un producto de Kronecker de operadores de diferencia unidimensional. En este ejemplo 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);

Visualice el patrón de dispersión con spy.

spy(A,'k')

Figure contains an axes object. The axes object with xlabel nz = 105 contains a line object which displays its values using only markers.

Argumentos de entrada

contraer todo

Matrices de entrada, especificadas como escalares, vectores o matrices. Si A o B es dispersa, entonces kron multiplica solo elementos distintos de cero y el resultado también es disperso.

Tipos de datos: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | logical
Soporte de números complejos:

Más acerca de

contraer todo

Producto tensorial de Kronecker

Si A es una matriz m por n y B es una matriz p por q, entonces el producto tensorial de Kronecker de A y B es una gran matriz que se forma multiplicando B por cada elemento de A.

AB=[a11Ba12Ba1nBa21Ba22Ba2nBam1Bam2BamnB].

Por ejemplo, dos matrices de 2 por 2 producen

A=[1210],B=[4323]AB=[1·41·32·42·31·21·32·22·31·41·30·40·31·21·30·20·3]=[4386234643002300].

Capacidades ampliadas

Generación de código C/C++
Genere código C y C++ mediante MATLAB® Coder™.

Historial de versiones

Introducido antes de R2006a

Consulte también

| | | |