Contenido principal

kron

Producto tensorial de Kronecker

Descripción

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.

ejemplo

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

Capacidades ampliadas

expandir todo

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

Generación de código de GPU
Genere código CUDA® para GPU NVIDIA® mediante GPU Coder™.

Historial de versiones

Introducido antes de R2006a

Consulte también

| | | |