Professional Documents
Culture Documents
Eliminacion Gaussiana
Mendoza Olivares, Jesus
Ticse Torres, Royer
Lima, 25 de Agosto del 2009
Resumen—En el siguiente trabajo, se examina uno de los f ila4 ← f ila4 − m41 ∗ f ila1 donde:m41 = a41 /a11 .
algoritmos más conocidos para resolver un sistema lineal de y entonces nuestra matriz A la hemos transformado en:
ecuaciones el algoritmo de eliminación gaussiana en su versión
paralela. a11 a12 a13 a14
0 u22 u23 u24
0 u32 u33 u34
I. I NTRODUCCI ÓN
0 u42 u43 u44
Este método trabaja directamente sobre la matriz aumentada
para resolver un sistema de ecuaciones lineales, llevandola a 2. Ahora, enfoquemos nuestra atención al subproblema de
la matriz de un sistema triangular que es eqivalente al sistema una matriz de 3x3
inicial. La equivalencia del sistema triangular final con el u22 u23 u24
inicial se argumenta debido a que el algoritmo sólo utilizamos u32 u33 u34
operaciones elementloes entre las filas y cuya aplicación u42 u43 u44
individual siempre preserva la equivalencia. Implementamos En forma similar, hacemos ceros los elementos por
el algoritmo de eliminación Gaussiana en forma paralela y se debajo de u22 , para lograrlo operemos
realizará una revisión sobre el trabajo computacional realizado f ila3 ← f ila3 − m32 ∗ f ila2 donde:m32 = u32 /u22 .
por este método. f ila4 ← f ila4 − m42 ∗ f ila2 donde:m42 = u42 /u22 .
II. O BJETIVOS 3. Luego, nuestra matriz se ha trasformado en:
Entender el algoritmo de Eliminación Gassuina para
a11 a12 a13 a14
solucionar un sistema de ecuaciones. 0 u22 u23 u24
Implementar la versión paralela del algoritmo Elimi-
0
0 v33 v34
nación Gaussiana.
0 0 v43 v44
III. P LANTEAMIENTO DEL PROBLEMA ahora solo nos resta operar con una fila para reducir v43
La principal caracteristica de la Eliminación Gaussiana es a cero.
transformar el sistema original f ila4 ← f ila4 − m43 ∗ f ila3 donde:m43 = v43 /v33 .
Lo que nos da lugar a la matriz triangular superior:
AX = B
a11 a12 a13 a14
0 u22 u23 u24
en un sistema lineal equivalente 0 0 v33 v34
0 0 0 w44
UX = Y
Contando con el sistema:
donde U es una matriz triangular superior. La razón de lograr
ésta transformación del sistema es que el nuevo sistema es a11 a12 a13 a14 x1 y1
0 u22 u23 u24 x2 y2
más simple y resolverlo sólo requiere un proceso hacia atrás. =
Por ejemplo, tomemos A una matriz de dimención n = 4. 0 0 v33 v34 x3 y3
0 0 0 w44 x4 y4
a11 a12 a13 a14
a21 a22 a23 a24 Introduzcamos la idea de matriz aumentada:
a31 a32 a33 a34
[AkB]
a41 a42 a43 a44
y sobre ella, realicemos las operaciones indicadas en los pasos
Las opreraciones disponibles son multiplicar un vector fila por
1, 2, ..., n − 1. Al hacerlo, estaremos trabajando sobre la parte
un escalar y añadirlo a otra fila.
activa de A pero de igual forma sobre las filas correspondientes
1. Nos intereza que las posiciones 21, 31, 41 de la matriz a B. El resultado será
sean ceros, esto lo podemos lograr sustrayendo un
[U kY ]
multiplo adecuado de la primera fila de A.
f ila2 ← f ila2 − m21 ∗ f ila1 donde:m21 = a21 /a11 . donde Y es el resultado de los cambios ocurridos a B al
f ila3 ← f ila3 − m31 ∗ f ila1 donde:m31 = a31 /a11 . aplicarle las operaciones fila que hemos considerado.
UNI-CTIC 2
VI. R ESULTADOS
Luego, hacemos las pruebas con dos matrices aleatorias
A de tamaño 120x120 y 240x240 cuyos únicos elementos
distintos de cero se encuentran en la diagonal principal y en
las subdiagonales arriba y las 6 debajo de la diagonal principal.
Los valores en la diagonal son mayores en valor absoluto que
los de las otras 12 sub-diagonales
Matriz aleatoria de 120x120
Número de procesadores = 1
Prueba Tiempo(seg)
1 0.294493
2 0.374795
3 0.304104
Número de procesadores = 2
Prueba Tiempo(seg)
1 0.419840
2 0.359263
3 0.308416
UNI-CTIC 4
i f ( my rank == 0 ) {
s t a r t s e r = MPI Wtime ( ) ;
f o r ( k = 0 ; k<DIMENSION−1;k ++) {
f o r ( i =k + 1 ; i <DIMENSION ; i ++){
l = A ser [ i ] [ k ] / A ser [ k ] [ k ] ;
f o r ( j =k ; j <DIMENSION ; j ++)
A s e r [ i ] [ j ] −= l ∗ A s e r [ k ] [ j ] ;
}
}
f o r ( i = 1 ; i <DIMENSION ; i ++) {
f o r ( j = 0 ; j <i ; j ++) A s e r [ i ] [ j ] = 0 . 0 ;
}
p r i n t f ( ” d e s p u e s de l a e l i m i n a c i o n de g a u s s \n\n ” ) ;
f o r ( i = 0 ; i <DIMENSION ; ++ i ) {
f o r ( j = 0 ; j <DIMENSION ; ++ j )
p r i n t f ( ” %f \ t ” , A s e r [ i ] [ j ] ) ;
p r i n t f (”\ n ” ) ;
}
e n d s e r = MPI Wtime ( ) ;
s e r i a l t i m e = end ser − s t a r t s e r ;
p a r a l l e l t i m e = end par − s t a r t p a r ;
speedup = s e r i a l t i m e / p a r a l l e l t i m e ;
p r i n t f ( ” A p l i c a n d o e l i m i n a c i o n g a u s s i a n a en una
%dx %d−m a t r i x \n ” ,DIMENSION , DIMENSION ) ;
p r i n t f ( ” P a r a l l e l v e r s i o n : %e s e c o n d s \n ” , p a r a l l e l t i m e ) ;
p r i n t f ( ” S e r i a l v e r s i o n : %e s e c o n d s \n ” , s e r i a l t i m e ) ;
fflush ( stdout );
fflush ( stderr );
M P I B a r r i e r (MPI COMM WORLD ) ;
MPI Finalize ( ) ;
return 0;
}