LIBRERIA PARA OPERACIONES DE MATRICES … · libreria para operaciones de matrices utilizando...

57
LIBRERIA PARA OPERACIONES DE MATRICES UTILIZANDO PROCESAMIENTO EN PARALELO BENIGNO LOZANO ROJAS FRANCISCO FORERO GARCíA DIRECTOR: Dr. MATEO LEZCANO BRITTO FUNDACIÓN UNIVERSITARIA KONRAD LORENZ Facultad de Ingeniería de Sistemas Especialización en Informática y Ciencias de la Computación Bogotá, 2006

Transcript of LIBRERIA PARA OPERACIONES DE MATRICES … · libreria para operaciones de matrices utilizando...

Page 1: LIBRERIA PARA OPERACIONES DE MATRICES … · libreria para operaciones de matrices utilizando procesamiento en paralelo benigno lozano rojas francisco forero garcía director: dr.

LIBRERIA PARA OPERACIONES DE MATRICES UTILIZANDO PROCESAMIENTO EN PARALELO

BENIGNO LOZANO ROJAS FRANCISCO FORERO GARCíA

DIRECTOR: Dr. MATEO LEZCANO BRITTO

FUNDACIÓN UNIVERSITARIA KONRAD LORENZ Facultad de Ingeniería de Sistemas

Especialización en Informática y Ciencias de la Computación Bogotá, 2006

Page 2: LIBRERIA PARA OPERACIONES DE MATRICES … · libreria para operaciones de matrices utilizando procesamiento en paralelo benigno lozano rojas francisco forero garcía director: dr.

LIBRERIA PARA OPERACIONES DE MATRICES UTILIZANDO PROCESAMIENTO EN PARALELO

BENIGNO LOZANO ROJAS FRANCISCO FORERO GARCíA

DIRECTOR: Dr. MATEO LEZCANO BRITTO

Trabajo presentado como requisito parcial para optar al título de “Especialista en Informática y Ciencias de la Computación”.

FUNDACIÓN UNIVERSITARIA KONRAD LORENZ Facultad de Ingeniería de Sistemas

Especialización en Informática y Ciencias de la Computación Bogotá, 2006

Page 3: LIBRERIA PARA OPERACIONES DE MATRICES … · libreria para operaciones de matrices utilizando procesamiento en paralelo benigno lozano rojas francisco forero garcía director: dr.

TABLA DE CONTENIDO

1. INTRODUCCIÓN 1

2. ESTADO DEL ARTE DE LA PROGRAMACIÓN EN PARALELO 3

2.1 COMPUTADORES PARALELOS Y COMPUTACIÓN PARALELA 3

3. CONCEPTUALIZACIÓN REQUERIDA 7

3.1 OPERACIONES CON MATRICES 7

3.1.1 Notación matricial 7

3.1.2 Operaciones con matrices 8

3.1.3 Notación de vectores 9

3.1.4 Operaciones con vectores 9

3.1.5 Particionando una matriz en filas y columnas 11

3.1.6 La notación coma 12

3.1.7 Multiplicación matriz por matriz 12

3.1.8 Especificaciones de nivel escalar 13

3.1.9 Formulación de un producto punto 16

3.1.10 Una formulación Saxpy 18

3.1.11 Una formulación de producto externo 19

3.1.12 Una nota sobre ecuaciones de matrices 21

Page 4: LIBRERIA PARA OPERACIONES DE MATRICES … · libreria para operaciones de matrices utilizando procesamiento en paralelo benigno lozano rojas francisco forero garcía director: dr.

3.1.13 Matriz inversa 22

3.1.14 El determinante 24

3.2 SISTEMAS DE ECUACIONES LINEALES 25

3.2.1 No singularidad y unicidad de soluciones 25

3.3 SISTEMAS TRIANGULARIZADOS 29

3.3.1 Sistemas Triangulares 29

3.3.2 Sistemas triangulares inferiores 30

3.3.3 Sustitución forward orientada por columnas 34

3.3.4 Sistemas triangulares superiores 37

3.3.5 Algoritmos para bloqueo de matrices 38

3.4 MÉTODOS DE DESCOMPOSICIÓN 39

3.4.1 Descomposición LU 39

4. LA LIBRERÍA PROPUESTA 49

5. CONCLUSIONES 50

6. BIBLIOGRAFÍA 52

6.1 WEBGRAFÍA 53

Page 5: LIBRERIA PARA OPERACIONES DE MATRICES … · libreria para operaciones de matrices utilizando procesamiento en paralelo benigno lozano rojas francisco forero garcía director: dr.

1. INTRODUCCIÓN

Las operaciones con matrices necesitan un considerable tiempo de cálculo

ya que, normalmente, se realizan sobre una cantidad grande de datos. Una

vía para solucionar esa problemática es convertir el procesamiento

secuencial en paralelo, forma de trabajo que es posible porque los datos

cumplen las condiciones de Berstein.

Operaciones como la suma, el producto por escalar y aún el cálculo de la

matriz transpuesta, son sencillas y al llevarlas a procesamiento paralelo

ahorran tiempo, sin embargo otras operaciones como el producto, cálculo del

determinante y cálculo de la matriz inversa, requieren el diseño de algoritmos

complejos, que hagan eficiente su procesamiento en paralelo.

Es entonces el propósito fundamental de este trabajo, ofrecer una librería en

lenguaje C que contenga las operaciones mencionadas con matrices de gran

tamaño, entendidas como aquellas con dimensiones superiores a 100 filas y

100 columnas.

Page 6: LIBRERIA PARA OPERACIONES DE MATRICES … · libreria para operaciones de matrices utilizando procesamiento en paralelo benigno lozano rojas francisco forero garcía director: dr.

2

El documento está dividido en seis partes; ésta –la introducción-; el capítulo

dos, que contiene el estado del arte de la programación en paralelo; el

capítulo 3, que hace referencia a los principales conceptos relacionados con

matrices y sus operaciones; el capítulo 4, que contiene la documentación de

la librería propuesta; el capítulo 5 contiene las conclusiones del trabajo

realizado y el capítulo 6 la bibliografía utilizada.

El anexo 1, presenta la programación en lenguaje C, de las ideas propuestas.

Page 7: LIBRERIA PARA OPERACIONES DE MATRICES … · libreria para operaciones de matrices utilizando procesamiento en paralelo benigno lozano rojas francisco forero garcía director: dr.

2. ESTADO DEL ARTE DE LA PROGRAMACIÓN EN PARALELO

2.1 COMPUTADORES PARALELOS Y COMPUTACIÓN PARALELA

La idea de la computación paralela se basa en tres consideraciones similares

aunque distintas. La primera, asociada con el desarrollo de computadores en

paralelo, es el deseo de ser capaces de resolver problemas que requieran

almacenamiento significativo de datos o soluciones secuenciales que tomen

mucho tiempo sobre un mainframe simple.

La segunda consideración está relacionada con el deseo de resolver

problemas en línea en tiempo real, cada vez más sofisticados. En este caso,

es necesario utilizar microprocesadores de bajo costo, capaces de soportar

algoritmos sofisticados en el control de sistemas, para mejorar el rendimiento

con más potencia computacional en sistemas en paralelo.

La tercera consideración está relacionada con la solución de problemas que

tienen efectivamente tareas paralelas, las cuales se adaptan por su

naturaleza al uso de esta metodología.

Page 8: LIBRERIA PARA OPERACIONES DE MATRICES … · libreria para operaciones de matrices utilizando procesamiento en paralelo benigno lozano rojas francisco forero garcía director: dr.

4

Flynn (1966) clasificó las diferentes organizaciones según el hardware

disponible para atender a los flujos de datos e instrucciones en:

• SISD, del inglés Simple Instruction Simple Data

• SIMD, del inglés Simple Instruction Multiple Data

• MISD, del inglés Multiple Instruction Simple Data

• MIMD, del inglés Multiple Instruction Multiple Data

En el modelo SISD, Las instrucciones se ejecutan secuencialmente, pero

pueden estar solapadas en las etapas de ejecución y puede tener más de

una unidad funcional bajo supervisión de una sola CPU. Esta es la forma de

organización de la mayoría de los computadores actuales.

En el modelo SIMD existen múltiples unidades de ejecución o Elementos de

Proceso (EP) supervisados por una única Unidad Central (UC). Todos los EP

reciben la misma instrucción remitida por la UC pero operan sobre diferentes

conjuntos de datos procedentes de flujos distintos. Esta organización

corresponde a procesadores matriciales.

En el modelo MISD existen n unidades de procesamiento. Cada una recibe

distintas instrucciones que operan sobre el mismo flujo de datos y sus

Page 9: LIBRERIA PARA OPERACIONES DE MATRICES … · libreria para operaciones de matrices utilizando procesamiento en paralelo benigno lozano rojas francisco forero garcía director: dr.

5

derivados. Los resultados (la salida) de un procesador pasan a ser la entrada

(los operandos) del siguiente procesador. Esta organización incluye

computadores vectoriales, computadores tolerantes a fallos (varias UP

procesan los mismos datos pero con diferentes programas. Los resultados

aparentemente redundantes son comparados para detectar fallos).

En el modelo MIMD se incluyen sistemas con más de un procesador capaces

de ejecutar varios programas simultáneamente: Multiprocesadores y

Multicomputadores

Así como se distinguen estas cuatro categorías, también es necesario

distinguir cuidadosamente el nivel de tareas que se emprenden en paralelo y

la granularidad (longitud computacional) de las mismas.

Otra consideración importante es la necesidad de transferir datos a y desde

los procesadores paralelos. Esto puede conducir a un conflicto en el acceso

de memoria que puede disminuir el rendimiento. Un problema similar es la

frecuente necesidad de sincronizar la aritmética que se ejecuta sobre los

procesadores, para asegurar que si el procesador A necesita usar un nuevo

valor de datos que están siendo calculados por el procesador B, entonces el

procesador A no hace cálculos antes de que el procesador B termine su

tarea. Esto se conoce con el problema de sincronización y puede conducir a

rendimientos muy ineficientes si el tema no se considera cuidadosamente en

Page 10: LIBRERIA PARA OPERACIONES DE MATRICES … · libreria para operaciones de matrices utilizando procesamiento en paralelo benigno lozano rojas francisco forero garcía director: dr.

6

el diseño del código. El problema de sincronización generalmente puede

resolverse sobre máquinas SIMD, pero es tan importante en máquinas MIMD

que se ha propuesto seriamente la posibilidad de usar algoritmos

asincrónicos (Baudet, 1978).

Page 11: LIBRERIA PARA OPERACIONES DE MATRICES … · libreria para operaciones de matrices utilizando procesamiento en paralelo benigno lozano rojas francisco forero garcía director: dr.

3. ÁLGEBRA DE MATRICES

3.1 OPERACIONES CON MATRICES

El cálculo de matrices es construido sobre una jerarquía de operaciones

algebraicas. Los productos internos involucran las operaciones escalares de

suma y multiplicación. La multiplicación vector - matriz se hace sobre

productos internos. La multiplicación matriz - matriz incluye una colección de

productos vector- matriz. Todas estas operaciones pueden ser descritas en

forma de algoritmos o en el lenguaje del álgebra lineal. Estos dos estilos de

expresiones se complementan.

3.1.1 Notación matricial. Sea R el conjunto de números reales. Denotamos

el espacio vectorial de todas las matrices reales mxn por Rmxn:

A ∈∈∈∈ Rmxn ⇔⇔⇔⇔ A = (aij) =

mnm

n

aa

aa

...

.........

...

1

111

aij ∈∈∈∈ R

Page 12: LIBRERIA PARA OPERACIONES DE MATRICES … · libreria para operaciones de matrices utilizando procesamiento en paralelo benigno lozano rojas francisco forero garcía director: dr.

8

Si se utiliza una letra mayúscula para denotar una matriz (Ej. A, B, C),

entonces la correspondiente letra minúscula con los subíndices i, j se refieren

al elemento genérico i, j (ej. aij, bij, cij). Los elementos de una matriz también

pueden representarse con la notación [A]ij y A(i,j).

3.1.2 Operaciones con matrices. Las operaciones básicas con matrices

incluyen transposición (Rmxn →→→→ Rnxm),

C = AT ⇒⇒⇒⇒ cij = aji,

Adición (Rmxn x Rmxn→→→→ Rmxn),

C = A + B ⇒⇒⇒⇒ cij = aij+ bij,

Multiplicación de un escalar por una matriz, (R x Rmxn→→→→ Rmxn),

C = ααααA ⇒⇒⇒⇒ cij = ααααaij ,

y la multiplicación de una matriz por otra ( Rmxp x Rpxn→→→→ Rmxn),

C = AB ⇒⇒⇒⇒ cij = ∑=

r

k

kjikba1

Page 13: LIBRERIA PARA OPERACIONES DE MATRICES … · libreria para operaciones de matrices utilizando procesamiento en paralelo benigno lozano rojas francisco forero garcía director: dr.

9

3.1.3 Notación de vectores. Sea Rn que denota el espacio n-vectorial real:

x ∈∈∈∈ Rn ⇔⇔⇔⇔ x =

nx

x

...

1

xi ∈∈∈∈ R

xi representa al i-ésimo componente de x. Dependiendo del contexto, las

notaciones alternativas [x]i y x(i) son usadas algunas veces.

Rn se representa como Rnx1; así los elementos de Rn son vectores columna.

De otra manera, los elementos de R1xn son vectores fila:

x ∈∈∈∈ R1xn ⇔⇔⇔⇔ x = (x1 , …, xn ).

Si x es un vector columna, entonces xT es un vector fila.

3.1.4 Operaciones con vectores. Dado a ∈∈∈∈ R, x ∈∈∈∈ Rn , e y ∈∈∈∈ Rn ; las

operaciones básicas con vectores incluyen la multiplicación de un escalar por

un vector,

z = ax ⇒⇒⇒⇒ zi = axi,

Page 14: LIBRERIA PARA OPERACIONES DE MATRICES … · libreria para operaciones de matrices utilizando procesamiento en paralelo benigno lozano rojas francisco forero garcía director: dr.

10

Adición de vectores,

z = x + y ⇒⇒⇒⇒ zi = xi+ yi,

Producto punto (o producto interior),

c = xTy ⇒⇒⇒⇒ c = ∑=

n

i

ii yx1

Y el producto vectorial (o el producto de Hadamard)

z = x. * y ⇒⇒⇒⇒ z = xiyi

Otra operación muy importante es la operación saxpy,

y = ax +y ⇒⇒⇒⇒ y = axi + yi

Aquí el símbolo “=” se utiliza para denotar asignación, no la igualdad

matemática; mediante esta operación el vector y es modificado. El nombre

saxpy es usado en LAPACK, un paquete de software que implementa

muchos de los algoritmos que manejan operaciones con matrices. La palabra

saxpy es el mnemotécnico del producto escalar ax + y.

Page 15: LIBRERIA PARA OPERACIONES DE MATRICES … · libreria para operaciones de matrices utilizando procesamiento en paralelo benigno lozano rojas francisco forero garcía director: dr.

11

3.1.5 Particionando una matriz en filas y columnas. Desde el punto de

vista de la fila, una matriz es una pila de vectores fila:

A ∈∈∈∈ Rmxn ⇔⇔⇔⇔ A =

T

m

T

r

r

...

1

rk ∈∈∈∈ Rn

Esta es llamada una partición fila de A. De esta forma, la partición por filas de

65

43

21

es la siguiente colección de filas

[ ]211 =Tr , [ ]432 =

Tr , [ ]653 =T

r

Alternativamente, una matriz es una colección de vectores columna:

A ∈∈∈∈ Rmxn ⇔⇔⇔⇔ A = [c1, …, cn], ck ∈∈∈∈ Rm .

Lo anterior se conoce como a la partición columna de A. En el ejemplo de la

matriz 3 por 2 anterior, aparecerán las columnas c1 y c2 respectivamente.

Page 16: LIBRERIA PARA OPERACIONES DE MATRICES … · libreria para operaciones de matrices utilizando procesamiento en paralelo benigno lozano rojas francisco forero garcía director: dr.

12

=

5

3

1

1c

=

6

4

2

2c

3.1.6 La notación coma. Una forma de manejar una columna o fila

específica de la matriz A es con la notación coma. Si A ∈∈∈∈ Rmxn , entonces

A(k, :) designa la k-ésima fila, es decir;

A(k,:) = [ ak1, ak2, …, akn]

=

nk

k

k

a

a

a

c...

2

1

1

Una aplicación preliminar de la notación coma, es entender la actualización

del producto exterior.

A = A + xyT; A ∈∈∈∈ Rmxn; x ∈∈∈∈ Rm; y∈∈∈∈ Rn

3.1.7 Multiplicación matriz por matriz. Se parte de la multiplicación matriz

por matriz 2 por 2 AxB; en la formulación del producto interno cada entrada

es calculada como un producto interior:

Page 17: LIBRERIA PARA OPERACIONES DE MATRICES … · libreria para operaciones de matrices utilizando procesamiento en paralelo benigno lozano rojas francisco forero garcía director: dr.

13

++

++=

84637453

82617251

87

65

43

21

xxxx

xxxx

En la versión producto interno, cada columna en el producto es mirada como

una combinación lineal de las columnas de A:

+

+

=

4

28

3

16,

4

27

3

15

87

65

43

21.

Finalmente, en la versión de producto externo, el resultado es mirado como

la suma de productos externos:

[ ] [ ]874

265

3

1

87

65

43

21

+

=

.

Aunque matemáticamente son equivalentes, estas versiones de

multiplicación de matrices pueden salirse de un determinado alcance debido

a los diferentes niveles de capacidad de memoria en la ejecución.

3.1.8 Especificaciones de nivel escalar. Para precisar la discusión es

conveniente enfocarse en la siguiente actualización de multiplicación de

matrices:

Page 18: LIBRERIA PARA OPERACIONES DE MATRICES … · libreria para operaciones de matrices utilizando procesamiento en paralelo benigno lozano rojas francisco forero garcía director: dr.

14

C = AB + C A ∈∈∈∈ Rmxp, B∈∈∈∈ Rpxn, y C∈∈∈∈ Rmxn.

El punto de arranque es el familiar algoritmo de loop triplemente anidado:

Algoritmo 5 (multiplicación de matrices: variante ijk ) Si A ∈∈∈∈ Rmxp, B∈∈∈∈

Rpxn, y C∈∈∈∈ Rmxn, son matrices dadas, entonces este algoritmo sobre-escribe

en la matriz C el valor de AB +C.

for i= 1:m

for j= 1:n

for k= 1:p

C(i, j) = A(i, k) B(k, j) + C(i,j)

end

end

end

Esta es la variante i, j, k porque identificamos las filas de C (y las de A) con i,

las columnas de C ( y las de B) con j, y el índice de suma con k.

Se considera la actualización de C = AB +C en vez de justamente C = AB

por dos razones: No tener que incomodarse con las inicializaciones y

Page 19: LIBRERIA PARA OPERACIONES DE MATRICES … · libreria para operaciones de matrices utilizando procesamiento en paralelo benigno lozano rojas francisco forero garcía director: dr.

15

actualizaciones de la forma C = AB +C que se presentan con mucha

frecuencia en la práctica.

Los tres loops en la actualización de la multiplicación de matrices pueden ser

ordenados arbitrariamente dando lugar a 6 variaciones. De esta forma

for j = 1:n

for k= 1:p

for i= 1:m

C(i, j) = A(i, k) B(k, j) + C(i,j)

end

end

end

es la variante j, k, i. Cada una de las 6 posibilidades ( ijk, jik, ikj, jki, kij, kji )

caracterizan una operación de loop interior ( producto interno) y tiene su

propio patrón de flujo de datos. Por ejemplo en la variante ijk, el loop interior

muestra un producto punto que requiere acceso a una fila de A y una

columna de B. La variante jki involucra un procedimiento de producto interno

que requiere acceso a una columna de C y a una columna de A. Estos

atributos pueden analizarse para cada una de las otras variantes

Page 20: LIBRERIA PARA OPERACIONES DE MATRICES … · libreria para operaciones de matrices utilizando procesamiento en paralelo benigno lozano rojas francisco forero garcía director: dr.

16

3.1.9 Formulación de un producto punto. El procedimiento usual de

multiplicación de matrices mira al producto AB como un arreglo de productos

punto que va a ser calculado al tiempo en el orden de izquierda a derecha,

de arriba hacia el fondo.

Esta es la idea del algoritmo 5. Usando la notación coma podemos aclarar la

formulación de este producto punto:

Algoritmo 6 (Multiplicación de matrices: versión producto punto) Si A ∈∈∈∈

Rmxp, B∈∈∈∈ Rpxn, y C∈∈∈∈Rmxn, son matrices dadas, entonces este algoritmo

sobre escribe en la matriz C el valor AB + C.

for i = 1: m

for j= 1:n

C(i, j) = A(i, : )B(: , j) + C(i, j)

end

end

En el lenguaje de matrices particionadas, si

=T

m

T

a

a

A ...

1

ak ∈∈∈∈ Rp

Page 21: LIBRERIA PARA OPERACIONES DE MATRICES … · libreria para operaciones de matrices utilizando procesamiento en paralelo benigno lozano rojas francisco forero garcía director: dr.

17

y B = [ b1, …, bn ] bk ∈∈∈∈ Rp

entonces el algoritmo 6 tiene esta interpretación:

for i = 1: m

for j= 1:n

cij = ijj

T

i cba +

end

end

La misión del loop j es calcular la i-ésima fila de la actualización. Para

enfatizar esto se puede escribir:

for i = 1:m

T

i

T

i

T

i cBac +=

end

Donde:

=T

m

T

c

c

C ...

1

Page 22: LIBRERIA PARA OPERACIONES DE MATRICES … · libreria para operaciones de matrices utilizando procesamiento en paralelo benigno lozano rojas francisco forero garcía director: dr.

18

Es una fila de la partición de C. Para decir lo mismo con la notación coma se

escribe:

for i = 1:m

:),(:),(),( iCBiAjiC +=

end

En cualquier forma, se observa que el interior de los dos loops de la variante

i, j, k definen una operación gaxpy orientada por fila.

3.1.10 Una formulación Saxpy. Suponiendo que A y C son matrices con

partición columna como sigue:

A = [ a1, …, ap] aj ∈∈∈∈ Rm

B = [ c1,…, cn] cj ∈∈∈∈ Rm

Al comparar las j-ésimas columnas de C = AB + C se ve que

∑=

+=p

k

jkkjij cabc1

, j= 1:n

Page 23: LIBRERIA PARA OPERACIONES DE MATRICES … · libreria para operaciones de matrices utilizando procesamiento en paralelo benigno lozano rojas francisco forero garcía director: dr.

19

Esta suma de vectores puede ser puesta simultáneamente con una

secuencia de actualizaciones saxpy.

Algoritmo 7 (Multiplicación de matrices: versión Saxpy)

Si las matrices A ∈∈∈∈ Rmxp, B∈∈∈∈ Rpxn, y C∈∈∈∈Rmxn, son dadas, entonces este

algoritmo sobre escribe C con AB + C.

for j = 1: n

for k= 1:p

C(: , j) = A(: ,k)B(k, j) + C(:, j)

end

end

El loop k deja ver una operación gaxpy

for j= 1:n

C(: , j) = AB(: ,j) + C(:, j)

end

3.1.11 Una formulación de producto externo. Dada la variante k, i, j del

algoritmo 5:

Page 24: LIBRERIA PARA OPERACIONES DE MATRICES … · libreria para operaciones de matrices utilizando procesamiento en paralelo benigno lozano rojas francisco forero garcía director: dr.

20

for k = 1: p

for j= 1:n

for i = 1: m

C(i, j) = A(i,k)B(k, j) + C(i, j)

end

end

end

Los dos loops internos dejan ver la actualización del producto externo:

CbaCT

kk +=

Donde:

A = [ a1 , …, ap ] y

=T

p

T

b

b

B ...

1

Con ak ∈∈∈∈Rm y bk ∈∈∈∈ Rn . Por lo tanto se obtiene:

Algoritmo 8 ( Multplicación de matrices: Versión producto externo)

Si A ∈∈∈∈ Rmxp, B∈∈∈∈ Rpxn, y C∈∈∈∈Rmxn, son matrices dadas, entonces este

algoritmo sobrescribe en la matriz C el valor AB + C.

Page 25: LIBRERIA PARA OPERACIONES DE MATRICES … · libreria para operaciones de matrices utilizando procesamiento en paralelo benigno lozano rojas francisco forero garcía director: dr.

21

for k = 1: p

C= A(:,k)B(k, :) + C

end

Esto recalca el hecho de que AB es la suma de p productos externos.

3.1.12 Una nota sobre ecuaciones de matrices. En un esfuerzo por

entender la multiplicación de matrices vía productos externos, se ha

establecido la ecuación matricial:

∑=

=p

k

T

kk baAB1

Donde ak y bk son definidos por la partición del algoritmo 3.

Numerosas ecuaciones de matrices se han desarrollado y algunas de ellas

son establecidas algorítmicamente como la expansión del producto externo

anterior y otras veces son probadas a nivel del componente ij. El siguiente

ejemplo prueba un resultado reciente e importante que caracteriza la

transpuesta de productos.

Teorema 1. Si A ∈∈∈∈ Rmxp, B∈∈∈∈ Rpxn, entonces, (AB)T = BT AT.

Prueba: Si C = (AB)T , entonces:

Page 26: LIBRERIA PARA OPERACIONES DE MATRICES … · libreria para operaciones de matrices utilizando procesamiento en paralelo benigno lozano rojas francisco forero garcía director: dr.

22

∑=

===p

k

kjjkjiij

T

ij baABABc1

][)( .

De otra parte, si D = BT AT, entonces:

∑ ∑= =

===p

K

p

k

jkkikj

T

ik

T

ij

TT

ij abABABd1 1

][][][ .

Como cij = dij para todo i y j, se sigue que C=D.

3.1.13 Matriz inversa. La matriz identidad Inxn es definida por la partición

columna

In = [e1,…, en]

Donde ek es el k-ésimo vector canónico:

ek= (0,…,0, 1, 0, …, 0 )T

Los vectores canónicos se presentan frecuentemente en análisis de matrices

y si su dimensión es ambigua, se usa un superíndice, ejemplo: nn

k Re ∈)(

Page 27: LIBRERIA PARA OPERACIONES DE MATRICES … · libreria para operaciones de matrices utilizando procesamiento en paralelo benigno lozano rojas francisco forero garcía director: dr.

23

Si A y X son matrices en Rnxn y satisfacen AX = I, entonces, X es la inversa

de A y se denota por A-1. Si A-1 existe, entonces A se dice no singular. De

otra manera, se dice que es singular.

Varias propiedades de la matriz inversa juegan un rol importante en el cálculo

de matrices. La inversa de un producto es el producto conmutado de las

inversas.

.)( 111 −−−= ABAB

La transpuesta de la matriz inversa es la inversa de la matriz transpuesta:

TTT AAA −−−≡=

11 )()( .

La identidad

1111 )( −−−−−−= AABBAB

muestra como la inversa cambia si la matriz cambia.

Page 28: LIBRERIA PARA OPERACIONES DE MATRICES … · libreria para operaciones de matrices utilizando procesamiento en paralelo benigno lozano rojas francisco forero garcía director: dr.

24

La fórmula de Sherman-Morrison-Woodbury da una expresión conveniente

para la inversa de (A+UVT) donde A∈∈∈∈Rnxn y U y V son matrices de dimensión

KxK:

111111 )()( −−−−−−+−=+ AVUAVIUAAUVA TTT .

Una corrección k a una matriz resulta en una corrección k de la inversa.

En la ecuación inmediatamente anterior, tanto A como (I + VTA-1U) son no

singulares. Cualquiera de estos hechos puede ser verificado justamente

mostrando que la inversa propuesta cumple el resultado. Por ejemplo, aquí

es como confirmar la identidad arriba mencionada.

.)())(( 11111 IAABBAAABBAB =−−=−−−−−−−

3.1.14 El determinante. Si A = (a) ∈∈∈∈ R1x1, entonces su determinante está

dado por det(A) = a. El determinante de A ∈∈∈∈ Rnxn, es definido en términos de

determinantes de orden (n-1).

Aquí, A1j es una matriz (n-1)x(n-1) obtenida al eliminar la primera fila y la j-

ésima columna de A. Las propiedades útiles de los determinantes incluyen:

Page 29: LIBRERIA PARA OPERACIONES DE MATRICES … · libreria para operaciones de matrices utilizando procesamiento en paralelo benigno lozano rojas francisco forero garcía director: dr.

25

Det(AB) = det(A)det(B) A,B ∈∈∈∈ Rnxn .

Det(AT) = det (A) A∈∈∈∈ Rnxn .

Det (cA) = cndet(A) c∈∈∈∈R, A∈∈∈∈ Rnxn .

Det(A) ≠≠≠≠ 0 ⇔⇔⇔⇔ A es no singular A∈∈∈∈ Rnxn .

3.2 SISTEMAS DE ECUACIONES LINEALES

En el cálculo científico es muy probable tener que resolver el siguiente

problema: Dada una matriz Anxn y un vector bnx1 debe resolverse el vector

x(nx1). Esto es, hallar X de tal forma que Ax = b. Este es el problema de

solución de un sistema de n ecuaciones lineales en n incógnitas.

Entendiendo que ya existe alguna experiencia en la solución de sistemas de

ecuaciones lineales, se mencionarán solo algunos conceptos teóricos

básicos y después se observarán algunos ejemplos para recordar como

pueden presentarse sistemas lineales en problemas científicos. Estos

conceptos resultan de gran importancia, toda vez que se aplican en el cálculo

de la matriz inversa, mediante la factorización LU.

3.2.1 No singularidad y unicidad de soluciones. Dado sistema de n

ecuaciones lineales en n incógnitas:

Page 30: LIBRERIA PARA OPERACIONES DE MATRICES … · libreria para operaciones de matrices utilizando procesamiento en paralelo benigno lozano rojas francisco forero garcía director: dr.

26

nnnnnn

nn

nn

bxaxaxa

bxaxaxa

bxaxaxa

=+++

=+++

=+++

...

...........................

...

...

2211

22222121

11212111

(1)

Los coeficientes aij y bi se suponen dados, y se desea hallar x1, x2, …, xn

que satisfagan las ecuaciones. En la mayoría de las aplicaciones, los

coeficientes son números reales y se busca una solución real. Por lo tanto,

se enfocará la atención a sistemas reales. Sin embargo, todo lo que se haga

puede ser llevado al campo de los números complejos.

Puesto que es tedioso sobrescribir la ecuación (1) una y otra vez, se

acostumbra escribir una ecuación matricial simple:

Ax = b, (2)

Donde:

=

=

=

nnnnnn

n

n

b

b

b

b

x

x

x

x

aaa

aaa

aaa

A...

...

...

............

...

...

2

1

2

1

21

22221

11211

.

Page 31: LIBRERIA PARA OPERACIONES DE MATRICES … · libreria para operaciones de matrices utilizando procesamiento en paralelo benigno lozano rojas francisco forero garcía director: dr.

27

A y b son dados, y se debe resolver x. A es una matriz cuadrada; ella tiene n

filas y n columnas.

La ecuación (2) tiene una única solución si y solamente si la matriz A es no

singular.

Primero se define alguna terminología estándar. La matriz identidad n x n es

denotada por In. Esta es la única matriz tal que AI = IA = A para toda

nnRA ×∈ . La matriz identidad tiene 1’s sobre la diagonal principal y 0’s en el

resto de la matriz.

Dada una matriz A, si existe una matriz B tal que AB = BA = I, entonces B se

llama la inversa de A y se denota A-1. No toda matriz tiene inversa.

Teorema 2: Sea A una matriz cuadrada. Las siguientes 6 condiciones son

equivalentes; esto es, si cualquiera se cumple, todas se cumplen:

a) A-1 existe.

b) Hay un valor y ≠ 0 tal que Ay = 0.

c) Las columnas de A son linealmente independientes.

d) Las filas de A son linealmente independientes.

e) El det(A) ≠ 0

Page 32: LIBRERIA PARA OPERACIONES DE MATRICES … · libreria para operaciones de matrices utilizando procesamiento en paralelo benigno lozano rojas francisco forero garcía director: dr.

28

f) Dado cualquier vector b, hay exactamente un vector x de tal forma

que Ax = b.

En la condición (b), el símbolo 0 representa el vector cuyas posiciones son

todas cero. En la condición (e), el símbolo 0 representa el número real cero.

Det(A) denota el determinante de A.

Si las condiciones del teorema 1 permanecen, A se dice que es una matriz

no singular o invertible. Si las condiciones no permanecen, A se dice que es

una matriz singular o no invertible. En este caso, la ecuación (2) no tiene

solución ó tiene infinitas soluciones.

Si A es no singular, la única solución de (2) puede ser obtenida en principio

por la multiplicación a ambos lados por A-1. A partir de Ax = b se obtiene A-

1Ax = A-1b, y además A-1A = I, la matriz identidad, x = A-1b. Esta ecuación

resuelve completamente el problema en teoría pero el método de solución

que se sugiere primero calcula A-1, luego se multiplica A-1 por b para obtener

x, que resulta ser ineficiente. Como se verá, generalmente es más apropiado

resolver Ax = b directamente sin calcular A-1. En la mayoría de los problemas

grandes, la economía en cómputo y almacenamiento evitando el cálculo de

A-1 son verdaderamente espectaculares. Sin embargo, cuando el objetivo es

llegar a A-1, este es el procedimiento adecuado.

Page 33: LIBRERIA PARA OPERACIONES DE MATRICES … · libreria para operaciones de matrices utilizando procesamiento en paralelo benigno lozano rojas francisco forero garcía director: dr.

29

3.3 SISTEMAS TRIANGULARIZADOS

3.3.1 Sistemas Triangulares. Un sistema lineal cuya matriz de coeficientes

es triangular es particularmente fácil de resolver. Por esta razón se

acostumbra reducir sistemas generales a una forma triangular, para

resolverlos fácilmente.

Una matriz ( )ijgG = es triangular inferior si 0=ijg siempre que i < j. de esta

manera, una matriz triangular inferior tiene la forma

=

nnnnn gggg

ggg

gg

g

G

...

0............

......

0...0

0...00

321

333231

2221

11

Similarmente, una matriz triangular superior es aquella para la cual 0=ijg

siempre que i > j. Una matriz triangular es cualquiera superior o inferior

matriz triangular.

Teorema 3. Sea G una matriz triangular. Entonces, G es no singular si y

solamente si 0≠iig para i = 1,…, n

Page 34: LIBRERIA PARA OPERACIONES DE MATRICES … · libreria para operaciones de matrices utilizando procesamiento en paralelo benigno lozano rojas francisco forero garcía director: dr.

30

Prueba: Se recalca del álgebra lineal elemental que si G es triangular,

entonces el determinante de G, ( ) nngggG ...det 2211= . De este modo ( ) 0det ≠G

si y solamente si 0≠iig para i = 1,…, n.

3.3.2 Sistemas triangulares inferiores. Dado el sistema Gy = b, donde G

es una matriz triangular inferior no singular, es fácil ver como se resuelve

este sistema si se escribe en detalle:

nnnnnnn bygygygyg

bygygyg

bygyg

byg

=++++

=++

=+

=

...

.....................

332211

3333232131

2222121

1111

La primera ecuación involucra solamente a y1 desconocido, la segunda

involucra a y1 y y2 y así sucesivamente. Se resuelve primero la ecuación

para y1:

11

11

g

by =

Partiendo de que G es no singular, se garantiza que 011 ≠g . Ahora que se

tiene y1, se puede sustituir este valor en la segunda ecuación y se resuelve

esa ecuación para y2:

Page 35: LIBRERIA PARA OPERACIONES DE MATRICES … · libreria para operaciones de matrices utilizando procesamiento en paralelo benigno lozano rojas francisco forero garcía director: dr.

31

( )

22

12122

g

ygby

−= .

Como G es no singular, 022 ≠g . Ahora que se conoce y2, se puede usar la

tercera ecuación para resolver y3, y así sucesivamente. En general, una vez

que se tiene y1, y2, …, yi-1, se puede resolver para yi, usando la ecuación i-

ésima:

ii

iiiiii

ig

ygygygby

11,2211 ...−−

−−−−= ,

la cual puede expresarse mas sucintamente de la siguiente forma:

−= ∑

=

−1

1

1i

j

jijiiii ygbgy (3)

De nuevo, como G es no singular, 0≠iig , lo que permite el cálculo de gii-1.

Este algoritmo para resolver un sistema triangular inferior es llamado

algoritmo de sustitución forward (hacia delante) ó de eliminación forward.

Este es el primero de dos versiones que se considerarán. Es llamado

sustitución forward orientado por filas porque el acceso a G es por filas; la i-

Page 36: LIBRERIA PARA OPERACIONES DE MATRICES … · libreria para operaciones de matrices utilizando procesamiento en paralelo benigno lozano rojas francisco forero garcía director: dr.

32

ésima fila es usada en el i-ésimo paso. También es llamado la forma

producto interno de sustitución forward porque la suma ∑−

=

1

1

i

j jij yg puede ser

observada como un producto interno ó producto punto.

La ecuación (3) describe completamente el algoritmo; incluso describe el

primer paso 11

11

g

by = , si se está de acuerdo con el hecho de que siempre que

el límite inferior de una sumatoria sea mayor que el límite superior de ella, la

suma es cero. De esta forma:

11

1

11

1

11

0

1

11

1

0

g

b

g

b

g

ygb

yj

jj

=−

=

=

∑= .

Sería fácil escribir un programa de computador para eliminación forward.

Antes se escribe el algoritmo, y se nota que b1 sólo es usado para calcular

y1; b2 es usado solamente para calcular y2, y así sucesivamente. En general,

una vez que se ha calculado yi, no es necesario bi. Por lo tanto es usual en

un programa de computador almacenar y sobre b. de esta forma, se tiene un

arreglo sencillo que contiene a b antes de que el programa sea ejecutado y

luego contiene a y después de que el programa se ejecute. El algoritmo se

observa así:

Page 37: LIBRERIA PARA OPERACIONES DE MATRICES … · libreria para operaciones de matrices utilizando procesamiento en paralelo benigno lozano rojas francisco forero garcía director: dr.

33

for i = 1, …, n

for j = 1, …, i – 1 (no se ejecuta para i = 1)

[ bi ← bi – gij bj (4)

if gii = 0, set error flag, exit

bi ← ii

i

gb

No hay referencias para y, porque es almacenado en el arreglo llamado b. El

chequeo de gii es incluido para hacer la prueba completa del programa

seguro. No hay nada que garantice que el programa no producirá

coeficientes de una matriz singular. El programa necesita responder

adecuadamente a esta situación. Es buena la práctica de chequear antes de

cada división para que el divisor no sea cero. En la mayoría de los algoritmos

de álgebra lineal, estos chequeos no contribuyen significativamente en el

tiempo que toma la corrida del programa, porque la operación división es

ejecutada muy pocas veces.

Para tener una idea del tiempo de ejecución de la sustitución forward, se

cuentan las operaciones de punto flotante (flops). En el loop interior de (4),

son ejecutados dos flops. Estos flops son ejecutados i – 1 veces sobre cada

i-ésima vez del loop externo. El loop externo es ejecutado n veces, así que

el número total de flops ejecutados en el j-ésimo loop es

( ) ( )∑ =−=−++++×

n

iin

1121...2102 . Calculando esta suma por un truco bien

Page 38: LIBRERIA PARA OPERACIONES DE MATRICES … · libreria para operaciones de matrices utilizando procesamiento en paralelo benigno lozano rojas francisco forero garcía director: dr.

34

conocido, se obtiene n(n-1), que se aproxima bien con n2. Estas

consideraciones son resumidas por las ecuaciones

( ) ( )∑∑ ∑=

= =

≈−=−=n

i

i

j

n

i

nnni1

1

1 1

21122

Mirando las operaciones que son ejecutadas fuera del loop j, se ve que gii es

comparado con cero n veces, y hay n divisiones. Sin tener en cuenta lo que

cuesta cada una de estas operaciones, el costo total de hacer todo es

proporcional a n y no a n2, y por lo tanto será insignificante si n es totalmente

grande. Haciendo esta conjetura, se ignoran los costos más bajos y se

establece simplemente que el costo de hacer sustitución forward es n2 flops.

El análisis anterior proporciona una valiosa información cualitativa. Se puede

esperar que cada vez que n se duplique, el tiempo de ejecución de

sustitución forward será multiplicado aproximadamente por 4.

3.3.3 Sustitución forward orientada por columnas. Ahora se deduce una

versión de sustitución forward orientada por columna. Se particiona el

sistema Gy = b como sigue:

=

b

b

y

y

Gh

g

ˆˆˆˆ

0 1111 . (5)

Page 39: LIBRERIA PARA OPERACIONES DE MATRICES … · libreria para operaciones de matrices utilizando procesamiento en paralelo benigno lozano rojas francisco forero garcía director: dr.

35

by y ,h son vectores de longitud n-1 y G es una matriz triangular inferior (n-

1)(n-1). El sistema particionado puede ser escrito como

byGh

bg

=+

=

ˆˆˆ111

Esto conduce al siguiente algoritmo:

yforbyGsolve

yhbb

gby

ˆ~

ˆˆ

ˆˆ~/

1

1111

=

−=

=

(6)

Este algoritmo reduce el problema de resolver un sistema triangular nxn al

de un sistema byG~

ˆˆ = de tamaño (n-1)x(n-1). Este problema más pequeño

puede ser reducido (por el mismo algoritmo) a un problema de orden (n-2),

que puede a su vez ser reducido a un problema de orden (n-3), y así

sucesivamente. Eventualmente obtenemos el problema 1x1 nnnn byg~

= , el

cual tiene la solución nnnn gby /~

= .

Un ejemplo de este procedimiento es el siguiente:

Page 40: LIBRERIA PARA OPERACIONES DE MATRICES … · libreria para operaciones de matrices utilizando procesamiento en paralelo benigno lozano rojas francisco forero garcía director: dr.

36

−=

10

2

15

321

042

005

3

2

1

y

y

y

.

Primero se calcula .35

1511

11 ===

gb

y Luego

−=

−=−=

7

83

1

2

10

2ˆˆ~1yhbb .

Ahora se debe resolver :~

ˆˆ byG =

−=

7

8

32

04

3

2

y

y.

Se alcanza esto repitiendo el algoritmo: y2= -8/-4 =2,

]3[2]2[]7[ˆ~~~

2 =−=−= yhbb ,

[3]y3 = [3], y y3=3/3=1. De este modo

=

1

2

3

y .

Page 41: LIBRERIA PARA OPERACIONES DE MATRICES … · libreria para operaciones de matrices utilizando procesamiento en paralelo benigno lozano rojas francisco forero garcía director: dr.

37

Se puede verificar esto al multiplicar G por y, obteniendo el resultado

correcto de b.

3.3.4 Sistemas triangulares superiores. Tal como puede esperarse, los

sistemas triangulares superiores pueden ser resueltos, en su mayoría, en la

misma forma como se resuelven los sistemas triangulares inferiores.

Considere el sistema Ux = y, donde U es una matriz triangular superior.

Escribiendo aparte el sistema se obtiene:

nnnn

nnnnnnn

nnnn

nnnn

yxu

yxuxu

yxuxuxu

yxuxuxuxu

=

=+

=+++

=++++

−−−−−

−−

−−

,

1,111,1

2,211,2222

1,111,1212111

...............

...

...

Es claro que el sistema se resolvería desde el fondo hacia arriba. La n-ésima

ecuación puede ser resuelta para xn, entonces la ecuación (n-1) puede ser

resuelta para xn-1, y así sucesivamente. El proceso es llamado “back

substitution” y tiene versiones orientadas por fila y por columna. El costo de

la sustitución hacia atrás es obviamente el mismo que el de sustitución hacia

delante, alrededor de n2 iteraciones.

Page 42: LIBRERIA PARA OPERACIONES DE MATRICES … · libreria para operaciones de matrices utilizando procesamiento en paralelo benigno lozano rojas francisco forero garcía director: dr.

38

3.3.5 Algoritmos para bloqueo de matrices. Es fácil desarrollar variantes

de bloques para forward substitution como para back substitution. Suponga

que la matriz triangular inferior se ha particionado en bloques de la siguiente

forma:

G =

sssss GGG

GG

G

r

r

r

...

............

0...

0...0

...

r ... r r

21

2221

11

2

1

s21

Cada iiG es una submatriz cuadrada y triangular inferior. Entonces la

ecuación bGy = puede ser escrita en forma particionada:

=

ssssss b

b

b

y

y

y

GGG

GG

G

......

...

............

0...

0...0

2

1

2

1

21

2221

11

(7)

En esta ecuación las entradas bi y yi no son escalares; ellas son vectores

con ri componentes cada una. La ecuación (7) sugiere que se halle y1

resolviendo el sistema 1111 byG = . Una vez se obtenga y1, se puede resolver

la ecuación 2222121 byGyG =+ para y2, y así sucesivamente. Esto conduce al

bloque de la versión “forward substitution” orientada por filas:

Page 43: LIBRERIA PARA OPERACIONES DE MATRICES … · libreria para operaciones de matrices utilizando procesamiento en paralelo benigno lozano rojas francisco forero garcía director: dr.

39

[

−←

==

=

iii

jiji

bG

if

bGb

for

1

i

ii

i

b

salgay error, de bandera coloque singular, es G

b

1)i cuando ejecuta se (no 1-i1,...,jfor

s ..., 1, i

(8)

La operación bGb iii

1−← no requiere el cálculo explícito de 1−

iiG . Se puede

efectuar resolviendo el sistema triangular inferior iii bxG = por “forward

substitution” orientado por filas o por columnas.

3.4 MÉTODOS DE DESCOMPOSICIÓN

3.4.1 Descomposición LU. El esquema de descomposición LU es una

transformación de una matriz A como producto de dos matrices,

LUA =

Donde L es una matriz triangular inferior y U es una matriz triangular

superior. Cuando se deben resolver varios conjuntos de ecuaciones lineales

en los que todas las matrices de coeficientes son iguales pero los términos

no homogéneos (lado derecho) son distintos, la solución de las ecuaciones

Page 44: LIBRERIA PARA OPERACIONES DE MATRICES … · libreria para operaciones de matrices utilizando procesamiento en paralelo benigno lozano rojas francisco forero garcía director: dr.

40

utilizando la descomposición LU tiende a ser más eficiente que la eliminación

de Gauss.

La descomposición LU para una matriz 3 x 3 se ilustra de la manera

siguiente:

=

3,3

3,22,2

3,12,11,1

2,31,3

1,2

3,32,31,3

3,22,21,2

3,12,11,1

00

0

1

01

001

u

uu

uuu

ll

l

aaa

aaa

aaa

(9)

Conviene observar que los elementos de la diagonal de L valen 1

Para evaluar jiu , y jil , en la ecuación (9) sin pivoteo, primero se multiplica el

primer renglón de L por cada columna de U y se compara el resultado con el

primer renglón de A. Se tiene entonces que el primer renglón de U es

idéntico al de A:

jj au ,1,1 = , j = 1 a 3

Se multiplica el segundo y tercer renglones de L por la primera columna de U

respectivamente, y se compara con el lado izquierdo para obtener

Page 45: LIBRERIA PARA OPERACIONES DE MATRICES … · libreria para operaciones de matrices utilizando procesamiento en paralelo benigno lozano rojas francisco forero garcía director: dr.

41

1,11,21,2 ula = , 1,11,31,3 ula =

O en forma equivalente

1,1

1,21,2 u

al = ,

1,1

1,31,3 u

al = (10)

Se multiplica el segundo renglón de L por la segunda y tercera columnas de

U y se comparan con el lado izquierdo para obtener

2,22,11,22,2 uula += , 3,23,11,23,2 uula +=

O bien

2,11,22,22,2 ulau −= , 3,11,23,23,2 ulau −= (11)

Se multiplica el tercer renglón de L por la segunda columna de U y se obtiene

2,22,32,11,32,3 ulula +=

O, en forma equivalente,

Page 46: LIBRERIA PARA OPERACIONES DE MATRICES … · libreria para operaciones de matrices utilizando procesamiento en paralelo benigno lozano rojas francisco forero garcía director: dr.

42

[ ]2,2

2,11,32,32,3 u

ulal

−= (12)

Finalmente, 3,3l se obtiene multiplicando la última columna de U por el último

renglón de L y se iguala a 3,3a como sigue

3,33,33,22,33,11,3 auulul =++

O bien

3,22,33,11,33,33,3 ululau −−= (13)

El esquema general de la descomposición LU para una matriz de orden N es

el siguiente:

a) El primer renglón de U, jiu . para j = 1 hasta N, se obtiene por medio

de

jj au ,1,1 = , j = 1 hasta N (14)

b) La primera columna de L, 1il para i = 2 hasta N, se obtiene por medio

de

Page 47: LIBRERIA PARA OPERACIONES DE MATRICES … · libreria para operaciones de matrices utilizando procesamiento en paralelo benigno lozano rojas francisco forero garcía director: dr.

43

1,1

1,1, u

al i

i = , i = 2 hasta N (15)

c) El segundo renglón de U se obtiene como

jjj ulau ,11,2,2,2 −= , j = 2 hasta N (16)

d) La segunda columna de L se obtiene mediante

[ ]2,2

2,11,2,2, u

ulal ii

i

−= , i = 3 hasta N (17)

e) El n-ésimo renglón de u se obtiene de

∑−

=

−=1

1

,,,,

n

k

jkknjnjn ulau , j = n hasta N (18)

f) La n-ésima columna de L se obtiene de

nn

n

k

nkkini

ni u

ula

l,

1

1

,,,

,

=∑

= , i = n + 1 hasta N (19)

Page 48: LIBRERIA PARA OPERACIONES DE MATRICES … · libreria para operaciones de matrices utilizando procesamiento en paralelo benigno lozano rojas francisco forero garcía director: dr.

44

En el proceso anterior, no se calculan los elementos de la diagonal de L, es

decir, iil , , puesto que todos valen 1.

Como se habrá observado, los elementos de la parte triangular superior de L

son iguales a cero. También los elementos de la parte triangular inferior de la

matriz U se anulan. Por lo tanto, los elementos de L y U se pueden guardar

en un arreglo con el fin de ahorrar espacio en la memoria. Por ejemplo, las

matrices L y U de la ecuación (9) se pueden combinar en un arreglo como:

3,32,31,3

3,22,21,2

3,12,11,1

ull

uul

uuu

En este arreglo, los elementos de la diagonal de L no se guardan porque

valen 1. Para reducir aún más el uso del espacio en la memoria, los

resultados de la factorización se escriben encima del espacio de memoria de

A. Esto es posible debido a que cada elemento jia , de A se utiliza sólo una

vez para calcular jil , o jiu , en toda la factorización. Por lo tanto, al utilizar

jia , , su espacio de memoria se puede utilizar para guardar jil , o jiu ,

Para resolver un conjunto de ecuaciones lineales, la ecuación yAx = se

puede escribir como

Page 49: LIBRERIA PARA OPERACIONES DE MATRICES … · libreria para operaciones de matrices utilizando procesamiento en paralelo benigno lozano rojas francisco forero garcía director: dr.

45

yLUx = (20)

Donde ALU = . La ecuación (20) se resuelve como sigue. Sea

zUx =

La ecuación (20) queda

yLz = (21)

La solución de la ecuación (21) para z es fácil, debido a la forma triangular de

L. Una vez que se conoce z, se resuelve el sistema en términos de x.

En el caso de una matriz de 3 x 3, por ejemplo, podemos escribir la ecuación

(21) como

=

3

2

1

3

2

1

2,31,3

1,2

1

01

001

y

y

y

z

z

z

ll

l (22)

La solución se calcula en forma recursiva como

Page 50: LIBRERIA PARA OPERACIONES DE MATRICES … · libreria para operaciones de matrices utilizando procesamiento en paralelo benigno lozano rojas francisco forero garcía director: dr.

46

[ ][ ]2,321,3133

1,2122

11

lzlzyz

lzyz

yz

−−=

−=

=

(23)

Se escribe el sistema en forma más explicita:

=

3

2

1

3

2

1

3,3

3,22,2

3,12,11,1

00

0

z

z

z

x

x

x

u

uu

uuu

Y la solución es

1,1

33,122,11

1

2,2

33,22

2

3,3

33

u

xuxuzx

u

xuzx

u

zx

−−=

−=

=

Para una matriz de orden N, las eliminaciones con las versiones forward

substitution y back substitution se resumen de la forma siguiente

a) Paso de eliminación con la versión forward substitution

Page 51: LIBRERIA PARA OPERACIONES DE MATRICES … · libreria para operaciones de matrices utilizando procesamiento en paralelo benigno lozano rojas francisco forero garcía director: dr.

47

−=

=

∑−

=

1

1

,

11

i

j

jjiii zlyz

yz

, i = 2, 3, …, N

b) Paso de eliminación con la versión back substitution

ii

N

ij

jjii

i

NN

N

N

u

xuz

x

u

zx

,

1

,

,

=

=

∑+=

, i = N – 1, N – 2, …, 3, 2, 1

En el proceso de cálculo de la matriz inversa, la factorización LU resulta de

gran importancia, dado que se podría expresar la operación de la forma:

AA-1 = I

Así, se puede descomponer la matriz I en sus diferentes columnas,

obteniendo un conjunto de sistemas de ecuaciones lineales, así:

A A-1:,1 =

0

...

0

1

, A A-1:,2 =

0

...

1

0

, ..., A A-1:,n =

1

...

0

0

Page 52: LIBRERIA PARA OPERACIONES DE MATRICES … · libreria para operaciones de matrices utilizando procesamiento en paralelo benigno lozano rojas francisco forero garcía director: dr.

48

Cada uno de estos sistemas tendrá solución para las incógnitas de A-1:,j ,

para j = 1, 2, ..., n, resultando en el conjunto solución que representa a la

matriz inversa.

Page 53: LIBRERIA PARA OPERACIONES DE MATRICES … · libreria para operaciones de matrices utilizando procesamiento en paralelo benigno lozano rojas francisco forero garcía director: dr.

4 LA LIBRERÍA PROPUESTA

La librería propuesta se presenta en el anexo No. 1.

Page 54: LIBRERIA PARA OPERACIONES DE MATRICES … · libreria para operaciones de matrices utilizando procesamiento en paralelo benigno lozano rojas francisco forero garcía director: dr.

5 CONCLUSIONES

1. Al hacer uso de la factorización LU para el cálculo de la matriz

inversa, se observa que el proceso de paralelización se presenta de

forma natural. Cada una de las columnas de la matriz inversa puede

ser calculada de manera independiente, teniendo las matrices L y U

como insumos.

2. El proceso de paralelización garantiza que, para matrices de gran

tamaño, las operaciones que representen alto procesamiento, como el

cálculo de la matriz inversa o el producto de matrices, se realicen de

manera eficiente.

3. La implementación de la librería propuesta, resulta de gran utilidad

para fines académicos, en tanto se puedan realizar desarrollos

posteriores que requieran su utilización.

4. En la propuesta de librería presentada, se parte de la paralelización de

los procesos. Sin embargo, resulta viable mediante esta metodología,

Page 55: LIBRERIA PARA OPERACIONES DE MATRICES … · libreria para operaciones de matrices utilizando procesamiento en paralelo benigno lozano rojas francisco forero garcía director: dr.

51

la implementación de paralelismo de datos, en tanto se puede

evidenciar que el cálculo de algunos componentes puede realizarse de

manera independiente.

5. En el cálculo de la matriz inversa usando la factorización LU, resulta

interesante observar que, para cualquiera de las columnas de la matriz

inversa, las matrices L y U requeridas en su cálculo, son las mismas.

Esto en sí mismo, es lo que facilita el proceso de paralelización.

Page 56: LIBRERIA PARA OPERACIONES DE MATRICES … · libreria para operaciones de matrices utilizando procesamiento en paralelo benigno lozano rojas francisco forero garcía director: dr.

52

6 BIBLIOGRAFÍA

1. DEMMEL, James W. Applied Numerical Linear Algebra. Philadelphia;

Ed. SIAM (Society for industrial and Applied Mathematics), 1997.

Capítulos 1 y 2.

2. DONGARRA, Jack J., et al. Solving Linear Systems on vector and

Shared Memory Computers. Philadelphia; Ed. SIAM (Society for

industrial and Applied Mathematics), 1991. Págs. 75 a 107

3. GALLIVAN, Michael T., HEATH, Esmond et al. Parallel algorithms for

matrix computations, 1990. Págs. 83 a 119.

4. GOLUB, Gene H. y VAN LOAN, Charles F. Matrix Computations.

Baltimore and London; Ed. The johns Hopkins University Press, 1996,

Págs. 1 a 46

5. Lancaster numerical análisis summer School. Numerical Analysis and

parallel proccesing. Ed. Springer Verlag, 1987. Págs. 2 a 22.

6. LEZCANO BRITO, Mateo G., Curso de Computación Paralela.

Universidad Central de las Villas. Cuba, 2006.

7. NAKAMURA, Shoichiro. Métodos numéricos aplicados con software.

México D.F.; Ed. Prentice Hall, 1992. Págs.196 a 219.

Page 57: LIBRERIA PARA OPERACIONES DE MATRICES … · libreria para operaciones de matrices utilizando procesamiento en paralelo benigno lozano rojas francisco forero garcía director: dr.

53

8. TREFETHEN, Lloyd N. y BAU, David. Numerical Linear Algebra.

Philadelphia; Ed. SIAM (Society for industrial and Applied

Mathematics), 1997. Págs. 147 a 154.

9. WATKINS, David S. Fundamentals of matrix computations. New York;

Ed. Wiley Interscience, 2002. Págs. 11 a 90.

6.1 WEBGRAFÍA

1. Clasificación de arquitecturas avanzadas, en:

http://lisisu02.usal.es/~bcurto/docencia/arquitectura/pdf_arq/2_tema1.pdf