Sunteți pe pagina 1din 12
 

ETSII-UPM

 

Método de Eliminación de Gauss

Matemáticas de la Especialidad (Mecánica-Máquinas) Madrid, 15 de octubre de 2002

   

Javier García de Jalón

ETSII - Departamento de Matemática Aplicada a la Ingeniería Industrial

Introducción

 

ETSII-UPM

q

La resolución de sistemas de ecuaciones lineales es uno de los problemas matemáticos más importantes en Ingeniería

ÿ Hasta la llegada de los computadores digitales (segunda mitad del s. XX) la capacidad de resolver sistemas de ecuaciones estaba muy limitada, no por la complejidad del problema, sino por el número de operaciones aritméticas

ÿ Ahora se puede resolver con un PC un sistema 1000×1000 en menos de 1 seg.

ÿ Con programas especiales que aprovechan la estructura de la matriz se pueden resolver de forma rutinaria con PCs, sistemas de decenas ó cientos de miles de ecuaciones lineales

q

Muchos métodos matemáticos (cálculo de valores y vectores propios,

integración de ecuaciones diferenciales, optimización,

)

se reducen

a la resolución repetida de sistemas de ecuaciones lineales

q

La resolución de sistemas de ecuaciones lineales tiene además un importante valor didáctico

ÿ para los métodos numéricos en general

 

ÿ para la programación de ordenadores

Sistema de m ecuaciones con n incógnitas

 

ETSII-UPM

q

Se parte de un sistema de m ecuaciones con n incógnitas expresado en forma matricial

a

11

x

1

a x

+

+

a

a

12

x

2

x

+

+

+

+

a

1

a

n

x

n

x

=

b

1

=

b

 

¸

Ô

È

Í

a

a

11

a

a

12

L

L

a

a

1

n

˘ ϸϸ x b

1

1

˙ ÔÔÔÔ

ÔÔÔÔ x b

21

1

22

2

2

n

n

2

Ô

˝

o bien,

Í

21

22

 

2

n

˙

2

2

Ì˝Ì˝

=

a x

m

1

1

+

a

m

2

x

2

+

+

a

mn

x

n

=

b

m

Ô

Ô

˛

Í

Í

Í

Î

a

M

m

1

a

M

m

2

O

L

a

M

mn

˙

˙

˚ ˙ Ó˛Ó˛

ÔÔÔÔ

ÔÔÔÔ M M

x

n

b

m

q

En Álgebra se ha estudiado en qué condiciones este sistema Ax=b:

ÿ Tiene solución única: no hay variables libres (r=n) y bŒIm(A)

 

ÿ Tiene infinitas soluciones: hay variables libres (r<n) y bŒIm(A)

 

ÿ No tiene solución: bœIm(A)

 

y ahora se trata de ser capaz de encontrar:

 

ÿ La solución única cuando existe

 

ÿ La mejor solución (o una solución cualquiera) cuando hay infinitas soluciones

ÿ Una solución aproximada óptima, cuando no hay solución exacta

 

Método de Gauss básico n×n

ETSII-UPM

q

Se parte de un sistema sin dificultades:

È

a

a

a

˘Ï¸Ï¸ x b

Í

Í

Í

a

11

21

M

a

12

22

M

O

a

1

2

M

n

n

1

1

˙ÔÔÔÔ

ÔÔÔÔ x b

˙

˙

˙

Ì˝Ì˝

ÔÔÔÔ M M

2

2

=

 

ÿ n ecuaciones con n incógnitas

 

ÿ Se suponen ecuaciones independientes

 

ÿ Se trata de transformar este sistema en otro más sencillo de resolver (misma solución)

ÿ Restando a la 2ª fila la 1ª por m 21 =a 21 /a 11

'

Í

Í

Î a

È a

Í

Í a

a

n

1

a

11

0

a

n

2

a

a

12

'

22

nn

1

'

2

n

n

ÔÔÔÔ

˚Ó˛Ó˛ ˙ x

˘Ï¸Ï¸ x b

b

n

1

n

1

˙ÔÔÔÔ

ÔÔÔÔ x b

˙

Ì˝Ì˝

'

2

2

=

 

a

2

j

=

a

2

j

-

m

21

a

1

j

j

=

1,2,

 

,

n

Í M

M

O

M

˙

˙

ÔÔÔÔ M M

'

2

b

=

b

2

-

m

21

b

1

ÿ De forma análoga pueden hacerse cero todos los elementos de la 1ª columna, resultando un sistema (n-1)×(n-1)

ÿ Haciendo ceros debajo de las restantes columnas el sistema se hace triangular

 

Í

Í

Î

È

a

a

n

1

a

a

n

2

a

a

nn

ÔÔÔÔ

˚Ó˛Ó˛ ˙ x

˘ ϸϸ x b

b

n

n

Í

Í a

11

0

12

'

a

22

1

'

2

n

n

1

1

˙ ÔÔÔÔ

˙

ÔÔÔÔ x b

'

2

Ì˝Ì˝

=

2

Í M

Í

Í

Î

M

0

a

'

n

2

O

a

M

'

nn

˙

ÔÔÔÔ

˚ ˙ Ó˛Ó˛ x

˙

ÔÔÔÔ M M

'

b

n

n

 

È

a

11

a

12

a

1

n

˘ Ï

x

1

¸

Ï

b

1

¸

ÿ Las incógnitas se pueden obtener fácilmente empezando por x n

a

k k

x

k

+

n

Â

a

ki

x

i

=

b

k

x

k

=

Ê

Ë Á

b

k

-

n

Â

 

a

ki

x

ˆ a i ¯ ˜
ˆ
a
i
¯ ˜

kk

Í ˙

0

M

0

'

a

22

M

0

'

a

2

n

Ô

Ô

Ì

Ô

Ô Ô

˝

Ô

Ô Ô

Ì

Ô

Í ˙ ˙

Í

Í M

Í

Î

x

M

2

b

M

n

'

2

=

O

axb ˙ ˙

(

nnnn

(

n

-

1)

Ô

˚ Ó

Ô ˛

Ô Ó

-

1)

Ô Ô

˝

Ô

Ô ˛

 

i

k

=

+

1

i

=

k

+

1

 

Método de Gauss básico n×n (2)

 

ETSII-UPM

q

Factorización A=LU

 
 

1

 

0

 

0 ˘

 

È

 

˘

 

ÿ El hacer ceros en la primera

 

È

L

a

11

a

12

 

L

 

a

1 n

˙

Í

 

˙

Í

 
   

1

 

0

˙

 

0

'

'

 

P 1 A

 

Í

-

m

21

L

A

=

Í

a

22

 

L

 

a

2 n

˙

=

   
 

columna de A es equivalente a pre-multiplicar por una matriz P 1

 

Í

Í

M

MOM

˙

˙

 

Í

Í

M

MOM

'

'

˙

˙

ÍÎ

-

m

n

1

 

0

L

1

˙˚

Î Í

0

a

 

L

 

a

 

˙ ˚

   

n

2

 

nn

 

ÿ Haciendo lo mismo para las

 

columnas 2, 3,

,

n-1

 

˘

 
 

È

Í

a

 

a

 

L

a

 
 

ÿ El producto P n-1

 

P

2 P 1 no

 

11

12

1 n

˙

 

0

 

'

'

tiene ninguna forma especial.

 

P

P P A

=

Í

a

22

L

a

2 n

 

˙

U

ÿ Sin embargo P i -1 es igual a P i cambiando el signo a los

n

- 1

2

1

Í

Í

M

M

O

M

˙

˙

 

Í

Î

0

0

 

L

a

(

nn

n -

1)

˚ ˙

coeficientes m ij , y el producto de

A

 

P

-

1

1

P

-

2

1

-

1

U

=

LU

 

=

 

P

n -

1

 

È 1 0

 

0 ˘ È

˙

a

11

 

˘

   

L

 

a

 

L

 

a

1 n

 
 

las inversas en orden opuesto se obtiene simplemente superponiendo las columnas.

   

12

 

˙

A

Í 1

Í

m

21

 

L

0

˙

Í '

0

Í a

22

 

L

 

a

'

2 n

˙

ÿ Finalmente se demuestra que A es el producto de dos matrices triangulares, inferior y superior.

= Í

M

 

M

O

M

˙

Í

M

M

O

 

M

˙

 

Í

Í

Î

m

n

1

m

n

2

 

L

1

Í

˙

˙

˚ Î

Í

0

 

0

 

L

 

a

(

nn

n -

1)

˙

˙ ˚

El Método de Gauss en detalle

 

ETSII-UPM

q

Se hace un cero en la posición (2,1) multiplicando por la matriz P 21

È

aaaaa

11

12

13

14

15

˘

 

È

1

000

˘

 

È

aaaaa

11

12

13

14

15

˘

Í

˙

Í

˙

Í

0

 

''''

˙

A

Í

= Í

aaaaa

21

2 2

23

24

aaaaa

31

32

33

34

25

35

˙

P

Í

= Í

-

m

21

100

˙

P

A

Í

= Í

aaaa

22

23

24

25

˙

˙

21

0

010

˙

21

aaaaa

31

32

33

34

35

˙

Í

Í

Î

aaaaa

41

4 2

43

44

45

˙

˙ ˚

Í

Î

0

001

˙

˚

Í

Î

aaaaa

41

42

43

44

45

˙

˚

donde

m

21

=

a

21

a

'

21

=

a

21

-

m

2 1

a

11

=

a

21

-

a

21

a

11

= 0

 

a

'

2 j

= a

2 j

- m

21

a

 

1 j

 

a

11

a

11

q

Se hacen ceros en el resto de la 1ª columna en la forma

 

È

aaaaa

1 1

12

13

14

15

˘

È

1

000

˘

a

i 1

 

Í

0

 

''''

 

˙

Í

 

˙

m

=

aaaa

˙

-

 

100

 

i 1

 

PPPA

4 1

31

21

Í

= Í

0

22

''''

2 3

24

25

aaaa

3 2

3 3

34

35

˙

P

41

P

31

P

21

=

Í

Í-

m

21

m

31

010

˙

˙

P

1

'

a

11

Í

˙

Í

˙

a

= a

- m a

 

q

Í

Î

0

''''

aaaa

42

4 3

44

45

˙ ˚

Í

Î

-

m

41

001

˙ ˚

Obsérvese la forma en que se multiplican las matrices P i1

ij

ij

i1

1 j

q

Si la matriz A es simétrica, la submatriz de P 1 A también lo es

 

El Método de Gauss en detalle (2)

 

ETSII-UPM

q

De la misma forma se hacen ceros debajo de los elementos de la diagonal en la columna 2

 

È

aaaaa

11

12

13

14

15

˘

 

È

1

0

0

0

˘

Í

''''

˙

=

Í

Í

0

   

1

0

0

˙

 

0

aaaa

˙

 

˙

 

P

42

P

32

P A

1

Í

= Í

 

23

2 3

''

23

''

23

''

˙

 

P

42

P

32

   

P

2

 

0

0

aaa

33

34

35

 

Í

0

-

m

32

1

 

0 ˙

 
 

Í

 

˙

 

Í

   

˙

 

''

''

''

 
 

Í

Î

0

0

y en la columna 3

aaa

4 3

44

45

˙ ˚

 

Í

Î

0

-

m

42

0

1

˙ ˚

 

È

aaaaa

11

12

13

14

15

˘

È

1

000

˘

Í

''''

 

˙

Í

0

 

100

˙

 

0

aaaa

 

˙

 

PPA

P

4321

Í

= Í

 

22

23

''

24

''

25

''

˙

P

43

=

Í

˙

˙

P

3

 
 

0

0

aaa

33

34

35

 

Í

0

010

 
 

Í

˙

Í

˙

Í

Î

000

a

'''

44

'''

45

a

˙ ˚

Í

Î

0

0

-

m

43

1

˙ ˚

El Método de Gauss en detalle (3)

 

ETSII-UPM

q

Las matrices P j obtenidas operan de una forma particular:

 

ÿ El producto P 3 P 2 no ofrece ninguna forma especial

 

È

1

0

0

0

˘ È

1

0

 

0

0

˘

È

1

0

0

0

˘

 

P P

=

Í

Í

0

 

1

0

0

˙

˙

Í

Í

0

1

 

0

0

˙

=

Í

Í

0

 

1

 

0

 

0

˙

˙

˙

3

2

Í

 

0

1

0

˙

Í

 

˙

Í

 

0

0

- m

32

 

1

0

0

-

m

32

1

0 ˙

 

Í

˙

Í

 

˙

Í

˙

Í

Î

0

0

-

m

4 3

1

˙

Í

˚ Î

0

-

m

42

0

1

˙ ˚

Í

Î

0

m

43

m

3 2

-

m

4 2

-

m

43

1

˙ ˚

ÿ La inversa de las matrices P j se obtiene cambiando el signo a los factores m ij

 

È 1 0

0

0

˘ È

1

0

0

0

˘

È

1000

˘

1

=

Í 1

Í

0

 

˙

˙

 

-

 

0

0

˙ Í

˙ Í

0

1

0

0

˙

Í

Í

0100

˙

   

P P

   

=

 

2

2

Í

0

- m

32

 

1

0

˙

Í

0

 

1

0

˙

Í

0010

˙

   

m

32

 

Í

˙

Í

   

˙

Í

˙

 

0

Î Í 42

- m

0

1

˙

˚ Î Í

0

m

42

0

1

˚ ˙

Î

0001

˚

ÿ El producto de las inversas en orden opuesto se realiza por “superposición”

 

È

1

0

0

0

˘È

1

0

 

0

0

˘

È

1

0

 

0

0

˘

 

0

˙Í

˙Í

 

˙

˙

 

-

1

-

1

=

Í

Í 1

0

0

 

0

 

1

0

0

˙

Í

Í

0

1

0

0

˙

P

P

 

=

 

2

3

m

Í 1

0

32

0

˙Í

0

 

0

 

1

0

˙

Í

0

m

32

 

1

0

˙

 

Í

Í

Î

0

m

42

0

1

˙Í

˙Í ˚Î

0

0

m

43

1

˙

˙ ˚

Í

Í Î

0

m

4 2

m

43

1

˙

˙ ˚

El Método de Gauss en detalle (4)

 

ETSII-UPM

q

Finalmente se obtiene la matriz A triangularizada (o en escalón)

 

È

aaaaa

1 1

12

13

1 4

15

˘

PPPA

321

Í

Í

= Í

0

 

''''

˙

 

aaaa

23

23

23

23

˙

0

 

''

''

''

˙

0

aaa

33

34

35

Í

 

˙

 

'''

'''

Í

Î

000

a

44

 

a

45

˙ ˚

q

Pre-multiplicando por las inversas de las matrices P i y teniendo en cuenta la forma de dicho producto de inversas

 
 

˘

˘

 

A

=

111

PPP

123

---

È

Í

Í

Í

aaaa

1 1

12

'''

13

1 4

0

0

aaa

a

a

23

0

23

''

33

23

''

34

a

a

a

1 5

'

23

''

35

˙

˙

˙

=

È

Í

Í

Í

1

m

m

21

31

0

1

m

3 2

0

0

˘ È

˙

aaaaa

11

1 2

''''

13

14

15

aaaa

23

23

' '

23

''

aaa

3 3

34

23

''

35

Í

000 ˙

Í

1000 ˙

Í

˙

˙

˙

 

˙

˙

˙

q

Í

Í

Î

0

0

0

a

'''

44

a

'''

45

˙ ˚

Í

Í Î

m

41

m

4 2

m

4 3

Í

1000

Í

˚ Î

˙

'''

4 4

a

'''

45

a

˚ ˙

La matriz A se descompone en el producto de una matriz triangular inferior con “unos” en la diagonal por una matriz triangular superior

 

A = LU

 

Resolución de Sistemas de Ecuaciones

ETSII-UPM

q

El sistema de ecuaciones lineales Ax=b se puede resolver combinando ecuaciones hasta que la matriz quede triangularizada y realizando después una vuelta atrás, según se ha expuesto

q

Otra forma de resolver el sistema Ax=b

ÿ El sistema se puede escribir en la forma: LUx=b

ÿ Se define un vector y=Ux

ÿ Se calcula y a partir del sistema triangular Ly=b

ÿ Conocido y, se calcula x del sistema triangular Ux=y

q

Ventajas de la forma LUx=b

ÿ Se puede aprovechar una factorización anterior, previa al cálculo de b. Esto es bastante frecuente en la programación de métodos iterativos

ÿ Se puede utilizar una misma factorización para un número grande e incluso indeterminado de segundos miembros

Programa de Gauss básico n×n

 

ETSII-UPM

q

Algoritmo básico con Matlab

 

ÿ La triangularización se basa en hacer un cero en (i,k) combinando las filas i y k

for k=1:n-1 for i=k+1:n m=A(i,k)/A(k,k); for j=k+1:n A(i,j)=A(i,j)-m*A(k,j);

end

k

k

j

0
0
 

=

k

i

 

i

 
 

b(i)=b(i)-m*b(k);

end

 

end

ÿ Para calcular las incógnitas mediante la vuelta atrás, el proceso es el siguiente:

 

k

i

* 0
*
0
 

x(n)=b(n)/A(n,n); for k=n-1:-1:1

k

 

*

k

 

s=0;

=

for i=k+1:n

s=s+A(k,i)*x(i);

end

x(k)=(b(k)-s)/A(k,k);

 

end

Programa de Gauss básico n×n (2)

ETSII-UPM

q

Utilización de la simetría: el número de operaciones es la mitad

for k=1:n-1 for i=k+1:n m=A(k,i)/A(k,k); for j=i:n A(i,j)=A(i,j)-m*A(k,j);

 
 

end

b(i)=b(i)-m*b(k);

end

 

end

q

Vectorización parcial del algoritmo: la velocidad de cálculo con Matlab (sobre todo en versiones anteriores a Matlab 6.5) aumenta considerablemente reemplazando el for más interno

for k=1:n-1 for i=k+1:n m=A(i,k)/A(k,k); %for j=k+1:n

 
 

A(i,k+1:n)=A(i,k+1:n)-m*A(k,k+1:n);

%end

b(i)=b(i)-m*b(k);

end

 

end

Programa de Gauss básico n×n (3)

 

ETSII-UPM

q

Programa para resolver un sistema en la forma LUx=Ly=b

%

factorización A=LU

 

k

for k=1:n-1 for i=k+1:n m=A(i,k)/A(k,k);

 
0 1 1
0
1 1
 
 

A(i,k+1:n)=A(i,k+1:n)-m*A(k,k+1:n);

k

 

*

k

A(i,k)=m;

=

end

end

%

Resolución del sistema Ly=b

y(1)=b(1);

 

for k=2:n

 

s=A(k,1:k-1)*y(1:k-1);

y(k)=b(k)-s;

 

k

i

* 0
*
0
 

end

k

 

*

k

Resolución del sistema Ux=b x(n)=y(n)/A(n,n); for k=n-1:-1:1

%

s=A(k,k+1:n)*x(k+1:n);

=

 

x(k)=(y(k)-s)/A(k,k);

end

Programa de Gauss vectorizado ETSII-UPM q Las operaciones del método de Gauss se pueden realizar
Programa de Gauss vectorizado
ETSII-UPM
q
Las operaciones del método de
Gauss se pueden realizar en otro
orden diferente
i
Elementos ya
transformados
Elementos que
ÿ En vez de hacer ceros por
columnas, se hacen cero
los elementos que están
delante de la diagonal
ya son 0
Fila a
transformar
i
Elementos a
hacer 0
ÿ Los elementos en gris
tienen ya valor definitivo
Elementos con el
valor inicial
ÿ Se crea el vector de factores
v(1: i -1) = A(1: i -1, i)'./ diag((A(1: i -1,1: i -1))'
ÿ La fila i puede sufrir todas las transformaciones a la vez, resultando un método
sensiblemente más rápido con Matlab que los anteriores
i
- 1
A
( ,
i i
:
n
)
=
A
( ,
i i
:
n
)
+
Â
A
(,: )
j
i
n
*
v
(
j
)
=
AvA
( ,
i i
:
n
)
+
(1:
i
-
1)
*
(1:
i
-
1,:)
i
n
j
= 1
A
( ,1 :
i
i
-
1)
=
v
(1:
i
-
1)

Método de Gauss con pivotamiento

 

ETSII-UPM

q

En el proceso de eliminación de Gauss es necesario dividir por los elementos que aparecen en la diagonal, que se denominan “pivots

ÿ En ocasiones puede aparecer un cero (o un elemento de valor muy pequeño) en la posición de un pívot: el proceso no puede continuar

ÿ Si debajo del pívot hay elementos 0 se pueden permutar las filas correspondientes y proseguir la eliminación

 
 

È

aaaaa

11

1 2

13

14

15

˘

Í

0

'''

˙

 

P A

Í

0

aaa

23

2 3

23

˙

 

1

= Í

0

''''

˙

 

aaaa

32

3 3

34

35

Í

˙

''''

Í

Î

0

aaaa

42

43

4 4

45

˙ ˚

ÿ La permutación de filas puede hacerse pre-multiplicando por una matriz P

 

È

1000

˘ È

aaaa

11

1 2

1 3

14

a

15

˘

È

aaaaa

11

1 2

1 3

14

15

˘

Í

0010

˙

Í

0

0

'

'

'

˙

Í

0

''''

˙

Í

˙

Í

a

23

a

24

a

25

˙

=

Í

aaaa

32

33

34

35

˙

 

PPA =

1

     

Í

Í

0100

˙

Í

Í

0

'''

aaa

32

33

 

'

˙

0

'''

˙

 

˙

34

a

35

˙

Í

Í

0

aaa

23

24

25

˙

   

'''

 

'

''''

Î

0001

Í

˚ Î

0

aaa

42

43

44

a

45

˚ ˙

Î Í

0

aaaa

42

43

44

45

˙ ˚

ÿ La matriz P puede construirse a partir de un vector p con el orden de los pivots

Método de Gauss con pivotamiento (2)

ETSII-UPM

q

Puede suceder que algunas columnas carezcan de pívot válido

 

ÿ

Por ejemplo, al hacer ceros en la columna 2 los elementos correspondientes de la columna 3 se han hecho también cero

 

È

aaaaa

11

12

1 3

14

15

˘

È

1

000

˘

 

Í

''''

˙

Í

0

100

˙

˙

 

''

0

aaaa

23

''

˙

Í

 

a

 

PPA

2

1

Í

23

23

23

' '

˙

P

44

=

 

˙

P

4

m

43

=

44

''

 

= Í

000

a

34

a

35

Í

0

010

 

a

Í

˙

Í