Vous êtes sur la page 1sur 8

PRCTICA

SOLUCIN NUMRICA DE SISTEMAS DE ECUACIONES LINEALES (PARTE II)


Elaborada por: Programacin Avanzada y Mtodos Numricos
Ing. Laura Sandoval Montao
Viridiana del Carmen De Luna Bonilla
Virgilio Green Prez
Objetivos
El alumno conocer y aplicar diferentes mtodos de solucin numrica para la resolucin
de sistemas de ecuaciones lineales.

Al final de esta prctica el alumno podr:

1. Resolver sistemas de ecuaciones lineales mediante diversas tcnicas de solucin
numrica (Mtodo de LU, Mtodo de Gauss-Seidel)
2. Implementar dichas tcnicas en el lenguaje de programacin C


Antecedentes

1. Manejar ciclos de repeticin en lenguaje C
2. Manejar arreglos y estructuras en lenguaje C
3. Realizar operaciones con matrices
4. Calcular la matriz inversa

Introduccin

En la solucin numrica de sistemas de ecuaciones lineales, existen varios mtodos
numricos como el Mtodo de LU y el Mtodo de Gauss-Seidel. En esta prctica
emplearemos dichos mtodos, por lo que se da una pequea explicacin de cada uno de
ellos; aunado a esto se recomienda revisar estos mtodos en la bibliografa citada al final de
la prctica.

Mtodo de LU
El mtodo de descomposicin LU para la solucin de sistemas de ecuaciones lineales debe
su nombre a que se basa en la descomposicin de la matriz original de coeficientes (A) en
el producto de dos matrices (L y U).
Esto es: A= LU
Donde:
L: Matriz triangular inferior
U: Matriz triangular superior.

Estas matrices son triangulares, y para facilidad de clculo, cualquiera de ellas puede
contener slo unos en la diagonal principal. En esta prctica seleccionamos a la matriz U
con dicha caracterstica.

Por ejemplo, para matrices de 3x3 se escribe:

1 0 0
1 0
1
0
0 0
23
13 12
33 32 31
22 21
11
33 32 31
23 22 21
13 12 11
u
u u
l l l
l l
l
a a a
a a a
a a a

PRCTICA
SOLUCIN NUMRICA DE SISTEMAS DE ECUACIONES LINEALES (PARTE II)
Elaborada por: Programacin Avanzada y Mtodos Numricos
Ing. Laura Sandoval Montao
Viridiana del Carmen De Luna Bonilla
Virgilio Green Prez
Si efectuamos la multiplicacin de L y U, igualando los elementos de ese producto con los
de la matriz A correspondientes, se obtiene:
l u l u l
a
l u l a l a
u l u l a l u l a l a
u l a u l a l a
33 23 32 13 31
33
32 12 31 32 31 31
23 22 13 21 23 22 12 21 22 21 21
13 11 13 12 11 12 11 11
+ = = =
+ = + = =
= = =
+

De aqu que los elementos de L y U son, en este caso:
( )
u l u l a l u l a l a l
l u l a u u l a l a l
l a u l a u a l
23 32 13 31 33 33 12 31 32 32 31 31
22 13 21 23 23 12 21 22 22 21 21
11 13 13 11 12 12 11 11
= = =
= = =
= = =

Si el sistema de ecuaciones original se escribe como A x = b, resulta lo mismo escribir
L U x = b. Definiendo a U x = Y, podemos escribir L Y = b
Resolviendo para Y, encontramos:
( )
( )
l
y
l
y
l b
y
l
y
l b
y
l b
y
33
2
32
1
31 3
3
22
1
21 2
2
11 1
1
=
=
=

Una vez conocidas L, U y b, prosigue encontrar primeramente los valores de "Y" por
sustitucin progresiva sobre "L Y = b". Posteriormente se resuelve "U x = Y " por
sustitucin regresiva para encontrar los valores de "x", obteniendo:
x u x u
y
x
x u
y
x
y
x
3 13 2 12
1
1
3 23
2
2
3
3
=
=
=

Por ejemplo, sea el siguiente sistema de ecuaciones, factorizando la matriz en LU:

4
24
9
2 1 3
6 5 4
3 2 1
3
2
1
x
x
x

Las matrices de factores L y U de A son:


=
1 0 0
2 1 0
3 2 1
;
9 5 3
0 3 4
0 0 1
U L

Resolver la ecuacin L Y = b
por sustitucin progresiva para
obtener los elementos del
vector auxiliar Y: [L][Y]=[b]


4
24
9
3 5 3
0 3 4
0 0 1
3
2
1
y
y
y


Donde:
1
4
9
3
2
1
=
=
=
y
y
y

PRCTICA
SOLUCIN NUMRICA DE SISTEMAS DE ECUACIONES LINEALES (PARTE II)
Elaborada por: Programacin Avanzada y Mtodos Numricos
Ing. Laura Sandoval Montao
Viridiana del Carmen De Luna Bonilla
Virgilio Green Prez

Resolver la ecuacin U x = Y
para encontrar los elementos de
x, por sustitucin regresiva:
[U][x]=[Y]


1
4
9
1 0 0
2 1 0
3 2 1
3
2
1
x
x
x

De donde se obtiene:
1
6
0
3
2
1
=
=
=
x
x
x


A continuacin se presenta el algoritmo, en pseudocdigo, de la descomposicin de la
matriz A en L y U, donde el programador puede seleccionar la matriz que contendr la
diagonal principal unitaria (como se mencion anteriormente).


DESDE k = 1 HASTA n
U(k,k)=1
L(k,k) =


=
) , ( * ) , ( ) , (
1
1
k s U s k L k k A
k
s

DESDE i = (k+1) HASTA n
) , ( * ) , ( ) , ( ) , (
1
1

=
= k s U s i L k i A k i L
k
s

FIN
DESDE j = (k+1) HASTA n

) , (
) , ( * ) , ( ) , (
) , (
1
1
k k L
j s U s k L j k A
j k U
k
s

=

=
FIN
FIN

PRCTICA
SOLUCIN NUMRICA DE SISTEMAS DE ECUACIONES LINEALES (PARTE II)
Elaborada por: Programacin Avanzada y Mtodos Numricos
Ing. Laura Sandoval Montao
Viridiana del Carmen De Luna Bonilla
Virgilio Green Prez
Mtodo de Gauss-Seidel
El mtodo de Gauss-Seidel, es un mtodo iterativo y por lo mismo, resulta ser un mtodo
bastante eficiente.
El paso inicial de este mtodo consiste en despejar por cada ecuacin una variable
diferente, as se obtiene un conjunto de ecuaciones. Considerando el siguiente sistema de
ecuaciones lineales, se muestra a su derecha la ecuacin resultante en la que de la ecuacin
1 despejamos x
1
, de la 2 despejamos x
2
y as sucesivamente.


n n nn n n
n n
n n
b x a x a x a
b x a x a x a
b x a x a x a
= + + +
= + + +
= + + +
...



...
...
2 2 1 1
2 2 2 22 1 21
1 1 2 12 1 11


nn
n nn n
n
n n
n n
a
x a x a b
x
a
x a x a b
x
a
x a x a b
x
1 1 1 11
22
2 1 21 2
2
11
1 2 22 1
1
...

...
...


=

=

=

Para comenzar el proceso iterativo, le damos un valor inicial a las variables x
2,
x
3,
, x
n
;
sustituyendo estos valores en la ecuacin de x
1
, obtenemos un primer valor para ste; luego
utilizamos este nuevo valor para sustituirlo en la siguiente ecuacin y obtener un valor para
x
2
; y continuamos consecutivamente hasta llegar a x
n
; con esto completamos la primera
iteracin. Aplicamos nuevamente las ecuaciones para obtener nuevos valores de x
1
, x
2
,
,x
n
completando de esta manera otra iteracin. Este proceso iterativo termina cuando,
sacando la diferencia entre cada uno de los valores de la iteracin actual con la anterior, se
tiene un valor menor de tolerancia.
Por ejemplo, sea el siguiente sistema de ecuaciones lineales:
9 3 2 1
24 6 5 4
4 2 3
3 2 1
3 2 1
3 2 1
= + +
= + +
= + +
x x x
x x x
x x x

Despejamos x
1
, x
2
y x
3
de la ecuacin 1, 2 y 3, respectivamente.
3
2 9
5
6 4 24
3
2 4
2 1
3
3 1
2
3 2
1
x x
x
x x
x
x x
x

=

=

=



PRCTICA
SOLUCIN NUMRICA DE SISTEMAS DE ECUACIONES LINEALES (PARTE II)
Elaborada por: Programacin Avanzada y Mtodos Numricos
Ing. Laura Sandoval Montao
Viridiana del Carmen De Luna Bonilla
Virgilio Green Prez

06667 . 0
3
) 73333 . 3 ( 2 ) 33333 . 1 ( 9
73333 . 3
5
) 0 ( 6 ) 33333 . 1 ( 4 24
33333 . 1
3
) 0 ( 2 0 4
3
2
1
=

=

=
=

=
x
x
x

Damos valores iniciales a x
2
y x
3
de
cero y obtenemos un primer valor de x
1
.
Obtenemos un valor para x
2
,
utilizando x
3
y el nuevo valor de x
1.
Y luego para x
3
, utilizamos los
nuevos valores de x
1
y x
2
.
De la primera iteracin tenemos que:
06667 . 0
73333 . 3
33333 . 1
3
2
1
=
=
=
x
x
x



Iteracin 2

13777 . 0
3
) 68444 . 4 ( 2 ) 04444 . 0 ( 9
68444 . 4
5
) 06667 . 0 ( 6 ) 04444 . 0 ( 4 24
04444 . 0
3
) 06667 . 0 ( 2 ) 73333 . 3 ( 4
3
2
1
=

=
=

=
=

=
x
x
x

Para la segunda iteracin se
usa 06667 . 0 73333 . 3
3 2
= = x y x para
obtener los nuevos valores. Y
procedemos de la misma manera que en
la iteracin anterior.
Calculamos los errores: para una tolerancia de 0.1
Error x
1
:
288 . 1 3333 . 1 04444 . 0 =
Error x
2
:
95111 . 0 7333 . 3 68444 . 4 =
Error x
3
:
20444 . 0 06666 . 0 13777 . 0 =
Como los errores obtenidos, en general, son todava grandes, continuamos con la siguiente
iteracin, realizando el mismo procedimiento.

Iteracin 3
33748 . 0
3
) 07437 . 5 ( 2 ) 13629 . 0 ( 9
07437 . 5
5
) 13777 . 0 ( 6 ) 13629 . 0 ( 4 24
13629 . 0
3
) 13777 . 0 ( 2 ) 68444 . 4 ( 4
3
2
1
=

=
=

=
=

=
x
x
x

Error x
1
:
18074 . 0 ) 0444 . 0 ( 13629 . 0 =
Error x
2
:
38992 . 0 68444 . 4 07437 . 5 =
Error x
3
:
19970 . 0 ) 13777 . 0 ( 33748 . 0 =
errores mayores a la tolerancia de 0.1





PRCTICA
SOLUCIN NUMRICA DE SISTEMAS DE ECUACIONES LINEALES (PARTE II)
Elaborada por: Programacin Avanzada y Mtodos Numricos
Ing. Laura Sandoval Montao
Viridiana del Carmen De Luna Bonilla
Virgilio Green Prez

Iteracin 4
49661 . 0
3
) 31148 . 5 ( 2 ) 13313 . 0 ( 9
31148 . 5
5
) 33748 . 0 ( 6 ) 13313 . 0 ( 4 24
13313 . 0
3
) 33748 . 0 ( 2 07437 . 5 4
3
2
1
=

=
=

=
=

=
x
x
x

Error x
1
:
00316 . 0 ) 13629 . 0 ( 13313 . 0 =
Error x
2
:
23711 . 0 07437 . 5 31148 . 5 =
Error x
3
:
15913 . 0 ) 33748 . 0 ( 49661 . 0 =
errores mayores a la tolerancia de 0.1
Iteracin 5
61850 . 0
3
) 48080 . 5 ( 2 ) 10608 . 0 ( 9
48080 . 5
5
) 49661 . 0 ( 6 ) 10608 . 0 ( 4 24
10608 . 0
3
) 49661 . 0 ( 2 ) 31148 . 5 ( 4
3
2
1
=

=
=

=
=

=
x
x
x

Error x
1
:
27048 . 0 ) 13313 . 0 ( 10608 . 0 =
Error x
2
:
16931 . 0 31148 . 5 48080 . 5 =
Error x
3
:
12189 . 0 ) 49661 . 0 ( 61850 . 0 =
errores mayores a la tolerancia de 0.1
Iteracin 6
71105 . 0
3
) 60721 . 5 ( 2 ) 08126 . 0 ( 9
60721 . 5
5
) 61850 . 0 ( 6 ) 08126 . 0 ( 4 24
08126 . 0
3
) 61850 . 0 ( 2 ) 48080 . 5 ( 4
3
2
1
=

=
=

=
=

=
x
x
x

Error x
1
:
02482 . 0 ) 10608 . 0 ( 08126 . 0 =
Error x
2
:
12641 . 0 48080 . 5 60721 . 5 =
Error x
3
:
09255 . 0 ) 61850 . 0 ( 71105 . 0 =
errores mayores a la tolerancia de 0.1
Iteracin 7
78118 . 0
3
) 70263 . 5 ( 2 ) 06170 . 0 ( 9
70263 . 5
5
) 71105 . 0 ( 6 ) 06170 . 0 ( 4 24
06170 . 0
3
) 71105 . 0 ( 2 ) 60721 . 5 ( 4
3
2
1
=

=
=

=
=

=
x
x
x

Error x
1
:
01956 . 0 ) 08126 . 0 ( 06170 . 0 =
Error x
2
:
09541 . 0 60721 . 5 70263 . 5 =
Error x
3
:
07012 . 0 ) 71105 . 0 ( 78118 . 0 =
errores menores a la tolerancia de 0.1

PRCTICA
SOLUCIN NUMRICA DE SISTEMAS DE ECUACIONES LINEALES (PARTE II)
Elaborada por: Programacin Avanzada y Mtodos Numricos
Ing. Laura Sandoval Montao
Viridiana del Carmen De Luna Bonilla
Virgilio Green Prez

Como la tolerancia se cumple en estos tres casos, aqu termina el proceso de iteraciones.
Entonces tenemos una solucin del sistema de ecuaciones:
78118 . 0
70263 . 5
06170 . 0
3
2
1
=
=
=
x
x
x


La tolerancia fijada en este ejercicio es muy grande por lo que los resultados no estn muy
cercanos al valor exacto:
1
6
0
3
2
1
=
=
=
x
x
x

Se recomienda utilizar una tolerancia mucho menor.


Bibliografa

BURDEN, L. R. , FAIRES, J.D.
Anlisis Numrico
7. Edicin
Mxico
Thomson International, 2003

CHAPRA, Steven C, CANALE, Raymond P.
Mtodos Numricos para Ingenieros
3. Edicin
Mxico
Mc. Graw-Hill, 1999

GERALD, Curtis F.
Anlisis Numrico
6. Edicin
Mxico
Prentice Hall, 2001
PRCTICA
SOLUCIN NUMRICA DE SISTEMAS DE ECUACIONES LINEALES (PARTE II)
Elaborada por: Programacin Avanzada y Mtodos Numricos
Ing. Laura Sandoval Montao
Viridiana del Carmen De Luna Bonilla
Virgilio Green Prez
EJERCICIOS PROPUESTOS

1. Elaborar un programa que implemente el mtodo de LU, para resolver sistemas de 3
incgnitas.

2. Con el programa anterior, resolver el siguiente sistema de ecuaciones.

61 . 17 6 4
32 . 14 6 4
3 . 85 8 3 5
3 2 1
3 2 1
3 2 1
= +
= +
= +
x x x
x x x
x x x


3. Elaborar un programa que implemente el mtodo de Gauss-Seidel, para resolver
sistemas de 3 incgnitas. TIP: Slo es implementar en funciones, las ecuaciones
resultantes del despeje de las ecuaciones del sistema.

4. Utilizando el programa anterior, resolver el sistema de ecuaciones del inciso 2.
Recordar que el sistema de ecuaciones debe estar acomodado.

5. Resolver el siguiente sistema de ecuaciones utilizando el mtodo de LU. TIP:
Implementar el algoritmo visto anteriormente y obtener ciclos adicionales para
calcular Y y X.

81 . 76 11 8 6 2 3
49 . 7 5 4 3 2
81 . 54 2 5 2 7 5
95 . 9 8 3 5
26 . 22 6 2 2 4
5 4 3 2 1
5 4 3 2 1
5 4 3 2 1
5 4 3 2 1
5 4 3 2 1
= + +
= + + + +
= + + + +
= + + +
= + + + +
x x x x x
x x x x x
x x x x x
x x x x x
x x x x x