Contenuto principale

kron

Prodotto tensoriale di Kronecker

Descrizione

K = kron(A,B) restituisce il prodotto sensoriale di Kronecker delle matrici A e B. Se A è una matrice m x n e B è una matrice p x q, kron(A,B) è una matrice m*p x n*q formata prendendo tutti i possibili prodotti tra gli elementi di A e la matrice B.

esempio

Esempi

comprimi tutto

Creare una matrice diagonale a blocchi.

Creare una matrice di identità 4x4 e una matrice 2x2 che si desidera ripetere lungo la diagonale.

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

Utilizzare kron per trovare il prodotto tensoriale di 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

Il risultato è una matrice diagonale a blocchi 8x8.

Espandere le dimensioni di una matrice ripetendo gli elementi.

Creare una matrice 2x2 di uno e una matrice 2x3 di cui si desidera ripetere gli elementi.

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

Calcolare il prodotto tensoriale di Kronecker utilizzando 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

Il risultato è una matrice a blocchi 4x6.

Questo esempio visualizza una matrice dell'operatore di Laplace sparsa.

La rappresentazione della matrice dell'operatore di Laplace discreto su una griglia n x n è una matrice sparsa n*n x n*n. Ogni riga o colonna contiene al massimo cinque elementi diversi da zero. È possibile generare la matrice come prodotto di Kronecker di operatori di differenza monodimensionali. In questo esempio 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);

Visualizzare il pattern di sparsità 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.

Argomenti di input

comprimi tutto

Matrici di input, specificate come scalari, vettori o matrici. Se A o B è sparso, kron moltiplica solo gli elementi diversi da zero ed il risultato è anch'esso sparso.

Tipi di dati: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | logical
Supporto numeri complessi:

Ulteriori informazioni

comprimi tutto

Funzionalità estese

espandi tutto

Generazione di codice C/C++
Genera codice C e C++ con MATLAB® Coder™.

Generazione di codice GPU
Genera codice CUDA® per GPU NVIDIA® con GPU Coder™.

Cronologia versioni

Introduzione prima di R2006a

Vedi anche

| | | |