Produto de Kronecker

De Augusto Baffa Wiki
Ir para navegação Ir para pesquisar

Dadas as matrizes A de dimensão m×n e B de dimensão p×q, o produto de kronecker (também chamado de produto direto) C=AB é uma matriz de dimensões (mp)×(nq) com elementos definidos por:

cαβ=aijbkl

onde:

  • α=p(i1)+k
  • β=q(j1)+l.


O produto direto da matriz fornece a matriz da transformação linear induzida pelo produto tensorial do espaço vetorial dos espaços vetoriais originais. Mais precisamente, suponha que

S:V1W1 e T:V2W2

são dados por

S(x)=Ax e T(y)=By.

Então

ST:V1V2W1W2

é determinado por

ST(xy)=(Ax)(By)=(AB)(xy).

Exemplo

Por exemplo, o produto de kronecker para uma matriz 2 × 2 A com uma matriz 3 × 2 B é uma matriz 6 x 4 como se segue:

[a11a12 a21a22][b11b12 b21b22 b31b32]=[a11Ba12B a21Ba22B]=[a11b11a11b12a12b11a12b12 a11b21a11b22a12b21a12b22 a11b31a11b32a12b31a12b32 a21b11a21b12a22b11a22b12 a21b21a21b22a22b21a22b22 a21b31a21b32a22b31a22b32]

Algoritmo

O algoritmo do produto de Kronecker entre as matrizes Ap×q e Br×s é apresentado a seguir e produz uma matriz Cpr×qs

kron(A_{p × q}, B_{r × s})
   inicializar a matriz C_{pr × qs}
   para i ← 1 até p
      para j ← 1 até q
         row ← (i - 1) * r + 1
         para k ← até r
            col ← (j - 1) * s + 1
            para l ← 1 até s
               C(row, col) ← A(i, j) * B(k, l)
               col ← col + 1
            fim_para
            row ← row + 1
         fim_para
      fim_para
   fim_para
   retorne C_{pr × qs}
fim_kron

A complexidade no tempo desse algoritmo é O(p×r×q×s).

Veja Também