Multiplicación de matrices por...

21
Multiplicaci´on de matrices por bloques Egor Maximenko http://www.egormaximenko.com Seminario “Matrices y operadores” Escuela Superior de F´ ısica y Matem´ aticas Instituto Polit´ ecnico Nacional exico 2020-09-09

Transcript of Multiplicación de matrices por...

Page 1: Multiplicación de matrices por bloquesesfm.egormaximenko.com/linalg/matrix_multiplication_by...Ejemplo: multiplicaci on de matrices diagonales por bloques 2 6 4 P 1 0 0 0P 2 0 0 P

Multiplicacion de matrices por bloques

Egor Maximenko

http://www.egormaximenko.com

Seminario “Matrices y operadores”

Escuela Superior de Fısica y Matematicas

Instituto Politecnico Nacional

Mexico

2020-09-09

Page 2: Multiplicación de matrices por bloquesesfm.egormaximenko.com/linalg/matrix_multiplication_by...Ejemplo: multiplicaci on de matrices diagonales por bloques 2 6 4 P 1 0 0 0P 2 0 0 P

1 Notacion para submatrices

2 Particion de una matriz en bloques

3 Multiplicacion de matrices por bloques

4 Ejemplos y aplicaciones

Page 3: Multiplicación de matrices por bloquesesfm.egormaximenko.com/linalg/matrix_multiplication_by...Ejemplo: multiplicaci on de matrices diagonales por bloques 2 6 4 P 1 0 0 0P 2 0 0 P

Plan

1 Notacion para submatrices

2 Particion de una matriz en bloques

3 Multiplicacion de matrices por bloques

4 Ejemplos y aplicaciones

Page 4: Multiplicación de matrices por bloquesesfm.egormaximenko.com/linalg/matrix_multiplication_by...Ejemplo: multiplicaci on de matrices diagonales por bloques 2 6 4 P 1 0 0 0P 2 0 0 P

Notacion para los componentes de una matriz

Si A ∈Mm×n(C), j ∈ {1, . . . ,m}, k ∈ {1, . . . , n},entonces Aj

k es el componente de A en el j-esimo renglon y la k-esima columna.

Ejemplo.

A ∈M2×3(C), A =

[A1

1 A12 A1

3

A21 A2

2 A23

].

Page 5: Multiplicación de matrices por bloquesesfm.egormaximenko.com/linalg/matrix_multiplication_by...Ejemplo: multiplicaci on de matrices diagonales por bloques 2 6 4 P 1 0 0 0P 2 0 0 P

Notacion para los componentes de una matriz

Si A ∈Mm×n(C), j ∈ {1, . . . ,m}, k ∈ {1, . . . , n},entonces Aj

k es el componente de A en el j-esimo renglon y la k-esima columna.

Ejemplo.

A ∈M2×3(C), A =

[A1

1 A12 A1

3

A21 A2

2 A23

].

Page 6: Multiplicación de matrices por bloquesesfm.egormaximenko.com/linalg/matrix_multiplication_by...Ejemplo: multiplicaci on de matrices diagonales por bloques 2 6 4 P 1 0 0 0P 2 0 0 P

Submatrices

A =

A11 A1

2 A13 A1

4 A15

A21 A2

2 A23 A2

4 A25

A31 A3

2 A33 A3

4 A35

,

A1,32,3,5 =

[A1

2 A13 A1

5

A32 A3

3 A35

]

En general, si A ∈Mm×n(C),

1 ≤ j1 < j2 < . . . < jp ≤ m, 1 ≤ k1 < k2 < . . . < kq ≤ n,

Aj1,...,jpk1,...,kq

:=[Ajrks

]p,qr ,s=1

.

Page 7: Multiplicación de matrices por bloquesesfm.egormaximenko.com/linalg/matrix_multiplication_by...Ejemplo: multiplicaci on de matrices diagonales por bloques 2 6 4 P 1 0 0 0P 2 0 0 P

Submatrices

A =

A11 A1

2 A13 A1

4 A15

A21 A2

2 A23 A2

4 A25

A31 A3

2 A33 A3

4 A35

, A1,32,3,5 =

[A1

2 A13 A1

5

A32 A3

3 A35

]

En general, si A ∈Mm×n(C),

1 ≤ j1 < j2 < . . . < jp ≤ m, 1 ≤ k1 < k2 < . . . < kq ≤ n,

Aj1,...,jpk1,...,kq

:=[Ajrks

]p,qr ,s=1

.

Page 8: Multiplicación de matrices por bloquesesfm.egormaximenko.com/linalg/matrix_multiplication_by...Ejemplo: multiplicaci on de matrices diagonales por bloques 2 6 4 P 1 0 0 0P 2 0 0 P

Submatrices

A =

A11 A1

2 A13 A1

4 A15

A21 A2

2 A23 A2

4 A25

A31 A3

2 A33 A3

4 A35

, A1,32,3,5 =

[A1

2 A13 A1

5

A32 A3

3 A35

]

En general, si A ∈Mm×n(C),

1 ≤ j1 < j2 < . . . < jp ≤ m, 1 ≤ k1 < k2 < . . . < kq ≤ n,

Aj1,...,jpk1,...,kq

:=[Ajrks

]p,qr ,s=1

.

Page 9: Multiplicación de matrices por bloquesesfm.egormaximenko.com/linalg/matrix_multiplication_by...Ejemplo: multiplicaci on de matrices diagonales por bloques 2 6 4 P 1 0 0 0P 2 0 0 P

Submatrices

A =

A11 A1

2 A13 A1

4 A15

A21 A2

2 A23 A2

4 A25

A31 A3

2 A33 A3

4 A35

, A1,32,3,5 =

[A1

2 A13 A1

5

A32 A3

3 A35

]

En general, si A ∈Mm×n(C),

1 ≤ j1 < j2 < . . . < jp ≤ m, 1 ≤ k1 < k2 < . . . < kq ≤ n,

Aj1,...,jpk1,...,kq

:=[Ajrks

]p,qr ,s=1

.

Page 10: Multiplicación de matrices por bloquesesfm.egormaximenko.com/linalg/matrix_multiplication_by...Ejemplo: multiplicaci on de matrices diagonales por bloques 2 6 4 P 1 0 0 0P 2 0 0 P

Submatrices

A =

A11 A1

2 A13 A1

4 A15

A21 A2

2 A23 A2

4 A25

A31 A3

2 A33 A3

4 A35

, A1,32,3,5 =

[A1

2 A13 A1

5

A32 A3

3 A35

]

En general, si A ∈Mm×n(C),

1 ≤ j1 < j2 < . . . < jp ≤ m, 1 ≤ k1 < k2 < . . . < kq ≤ n,

Aj1,...,jpk1,...,kq

:=[Ajrks

]p,qr ,s=1

.

Page 11: Multiplicación de matrices por bloquesesfm.egormaximenko.com/linalg/matrix_multiplication_by...Ejemplo: multiplicaci on de matrices diagonales por bloques 2 6 4 P 1 0 0 0P 2 0 0 P

Plan

1 Notacion para submatrices

2 Particion de una matriz en bloques

3 Multiplicacion de matrices por bloques

4 Ejemplos y aplicaciones

Page 12: Multiplicación de matrices por bloquesesfm.egormaximenko.com/linalg/matrix_multiplication_by...Ejemplo: multiplicaci on de matrices diagonales por bloques 2 6 4 P 1 0 0 0P 2 0 0 P

Particion de una matriz en bloques

A =E F

G H

r

m − r

s n − s

.

A1,...,r1,...,s = E , Aj

k = E jk (1 ≤ j ≤ r , 1 ≤ k ≤ s),

A1,...,rs+1,...,n = F , Aj

k = F jk−s (1 ≤ j ≤ r , s + 1 ≤ k ≤ n),

Ar+1,...,m1,...,s = G , Aj

k = G j−rk (r + 1 ≤ j ≤ m, 1 ≤ k ≤ s),

Ar+1,...,ms+1,...,n = H , Aj

k = F j−rk−s (r + 1 ≤ j ≤ m, s + 1 ≤ k ≤ n).

Page 13: Multiplicación de matrices por bloquesesfm.egormaximenko.com/linalg/matrix_multiplication_by...Ejemplo: multiplicaci on de matrices diagonales por bloques 2 6 4 P 1 0 0 0P 2 0 0 P

Plan

1 Notacion para submatrices

2 Particion de una matriz en bloques

3 Multiplicacion de matrices por bloques

4 Ejemplos y aplicaciones

Page 14: Multiplicación de matrices por bloquesesfm.egormaximenko.com/linalg/matrix_multiplication_by...Ejemplo: multiplicaci on de matrices diagonales por bloques 2 6 4 P 1 0 0 0P 2 0 0 P

Multiplicacion de matrices por bloques

ProposicionSean

A =

[E F

G H

], B =

[V W

X Y

].

Entonces

AB =

[EV + FX EW + FY

GV + HX GW + HY

].

Page 15: Multiplicación de matrices por bloquesesfm.egormaximenko.com/linalg/matrix_multiplication_by...Ejemplo: multiplicaci on de matrices diagonales por bloques 2 6 4 P 1 0 0 0P 2 0 0 P

Otra forma de la misma regla

A =

[A1,...,r

1,...,s A1,...,rs+1,...,n

Ar+1,...,m1,...,s Ar+1,...,m

s+1,...,n

], B =

[B1,...,s

1,...,t B1,...,st+1,...,p

B s+1,...,n1,...,t B s+1,...,n

t+1,...,p

].

Entonces

(AB)1,...,r1,...,t = A1,...,r

1,...,sB1,...,s1,...,t + A1,...,r

s+1,...,nBs+1,...,n1,...,t ,

(AB)1,...,rt+1,...,p = A1,...,r

1,...,sB1,...,st+1,...,p + A1,...,r

s+1,...,nBs+1,...,nt+1,...,p ,

(AB)r+1,...,m1,...,t = Ar+1,...,m

1,...,s B1,...,s1,...,t + Ar+1,...,m

s+1,...,n Bs+1,...,n1,...,t ,

(AB)r+1,...,mt+1,...,p = Ar+1,...,m

1,...,s B1,...,st+1,...,p + Ar+1,...,m

s+1,...,n Bs+1,...,nt+1,...,p .

Page 16: Multiplicación de matrices por bloquesesfm.egormaximenko.com/linalg/matrix_multiplication_by...Ejemplo: multiplicaci on de matrices diagonales por bloques 2 6 4 P 1 0 0 0P 2 0 0 P

Demostremos que

(AB)1,...,rt+1,...,p︸ ︷︷ ︸L

= A1,...,r1,...,sB

1,...,st+1,...,p + A1,...,r

s+1,...,nBs+1,...,nt+1,...,p︸ ︷︷ ︸

R

.

L y R son matrices r × (p − t).

Ljk = (AB)jt+k =n∑

u=1

AjuB

ut+k =

s∑u=1

AjuB

ut+k +

n∑u=s+1

AjuB

ut+k

=s∑

u=1

AjuB

ut+k +

n−s∑v=1

Ajv+sB

v+st+k

=s∑

u=1

(A1,...,r1,...,s)

ju(B1,...,s

t+1,...,p)uk +n−s∑v=1

(A1,...,rs+1,...,n)jv (B s+1,...,n

t+1,...,p )vk = R jk .

Page 17: Multiplicación de matrices por bloquesesfm.egormaximenko.com/linalg/matrix_multiplication_by...Ejemplo: multiplicaci on de matrices diagonales por bloques 2 6 4 P 1 0 0 0P 2 0 0 P

Plan

1 Notacion para submatrices

2 Particion de una matriz en bloques

3 Multiplicacion de matrices por bloques

4 Ejemplos y aplicaciones

Page 18: Multiplicación de matrices por bloquesesfm.egormaximenko.com/linalg/matrix_multiplication_by...Ejemplo: multiplicaci on de matrices diagonales por bloques 2 6 4 P 1 0 0 0P 2 0 0 P

Ejemplo: el producto de dos matrices

triangulares inferiores por bloques

[E 0r×(n−s)

G H

][V 0(n−s)×(p−t)

X Y

]=

[EV 0r×(p−t)

GV + HX HY

].

Page 19: Multiplicación de matrices por bloquesesfm.egormaximenko.com/linalg/matrix_multiplication_by...Ejemplo: multiplicaci on de matrices diagonales por bloques 2 6 4 P 1 0 0 0P 2 0 0 P

Ejemplo: en el producto de una matriz por un vector

separar el ultimo renglon y la ultima columna

M =

[A u

v> ω

], x =

[y

ζ

].

Entonces

Mx =

[Ay + uζ

v>y + ωζ

].

Page 20: Multiplicación de matrices por bloquesesfm.egormaximenko.com/linalg/matrix_multiplication_by...Ejemplo: multiplicaci on de matrices diagonales por bloques 2 6 4 P 1 0 0 0P 2 0 0 P

Ejemplo: multiplicacion de matrices diagonales por bloques

P1 0 0

0 P2 0

0 0 P3

Q1 0 0

0 Q2 0

0 0 Q3

=

P1Q1 0 0

0 P2Q2 0

0 0 P3Q3

.Aquı se usa una version mas general de la regla.

Page 21: Multiplicación de matrices por bloquesesfm.egormaximenko.com/linalg/matrix_multiplication_by...Ejemplo: multiplicaci on de matrices diagonales por bloques 2 6 4 P 1 0 0 0P 2 0 0 P

Algunas aplicaciones

Una demostracion del teorema de Jacobi sobre el menor complementario.

Inversion de matrices por bloques:[A B

C D

]−1

=

[A−1 + A−1BS−1CA−1 −A−1BS−1

−S−1CA−1 S−1

], S := D − CA−1B .

Formula para la inversa de la suma (Woodbury):

(A + UCV )−1 = A−1 − A−1U(C−1 + VA−1U

)−1VA−1.

El algoritmo de Strassen para multiplicar matrices.