Sie sind auf Seite 1von 34

UNIVERSIDAD AUTONOMA DEL ESTADO DE

MEXICO
FACULTAD DE INGENIERIA

Solucin de sistemas
Lineales:
Eliminacin Gaussiana
Eliminacin Gauss-
Jordan
Factorizacin LU
Alumno: Julio Alberto Gutirrez Osorio
Materia: Mtodos Numricos
Profesor: Luis Toledo Vega
Junio 2015
Periodo 2015-A
Solucin de sistemas de ecuaciones
lineales.
Introduccin
Se analizaran las ecuaciones algebraicas lineales simultneas que en
general se representan como:
+ + + =
+ + + =
. .
. .
. .
+ + + =
Donde las a son los coeficientes constantes y las b son los trminos
independientes constantes. Primeramente se describir la tcnica conocida como
eliminacin de Gauss o Gaussiana, ya que implica una combinacin de ecuaciones
para eliminar incgnitas. Aunque ste es uno de los mtodos ms antiguos para
resolver ecuaciones lineales simultneas, contina siendo uno de los algoritmos de
mayor importancia, y es la base para resolver ecuaciones lineales en muchos
paquetes de software populares.

Eliminacin Gaussiana
La eliminacin de incgnitas.
La eliminacin de incgnitas mediante la combinacin de ecuaciones es un
mtodo algebraico que se ilustra con un sistema de dos ecuaciones simultneas.
+ = ()
+ = . ()
La estratega bsica consiste en multiplicar las ecuaciones por constantes,
de tal forma que se elimine una de las incgnitas cuando se combinen las dos
ecuaciones. El resultado es una sola ecuacin en la que se puede despejar la
incgnita restante. Este valor se sustituye en cualquiera de las ecuaciones originales
para calcular la otra variable.

2
Por ejemplo, la ecuacin 1 se multiplica por y la ecuacin 2 por para
dar

Restando la primera ecuacin de la segunda, se elimina el trmino 1 de


las ecuaciones para obtener

Despejando 2

Se observa, que la ultimas ecuaciones se relacionan con la regla de


Cramer, que establece

3
La eliminacin de incgnitas se puede extender a sistemas con ms de tres
ecuaciones. Sin embargo, los mltiples clculos que se requieren para sistemas
grandes hacen el mtodo sea extremadamente tedioso para realizarse a mano. No
obstante, como se describe a continuacin, la tcnica llega a formalizarse y
programarse fcilmente.
Esta tcnica desarrolla un esquema sistemtico o algoritmo para eliminar
incgnitas y sustituir hacia atrs. La eliminacin de Gauss es el ms bsico de
dichos esquemas.

Eliminacin Gaussiana simple


El mtodo est ideado para resolver un sistema de n ecuaciones
+ + + =
+ + + =
. .
. .
. .
+ + + =

Como en el caso de dos ecuaciones, la tcnica para resolver n ecuaciones


consiste en dos fases: la eliminacin de las incgnitas y su solucin mediante
sustitucin hacia atrs.

Eliminacin hacia delante de incgnitas. Reduce el conjunto de ecuaciones


a un sistema triangular superior

4
Sustitucin hacia atrs. De la ltima ecuacin se despeja el trmino Xn:

El procedimiento, que se repite para evaluar las X restantes, se representa


mediante la frmula:

5
Algoritmo para realizar a) la eliminacin hacia adelante y b) la sustitucin hacia atrs.

6
Seudocdigo para instaurar la eliminacin de Gauss con pivoteo parcial.

7
Ejemplo 1.
Emplee la eliminacin de Gauss para resolver

Solucin. La primera parte del procedimiento es la eliminacin hacia


adelante. Se multiplica la ecuacin E.9.5.1 por (0.1)/3 y se resta el resultado de la
ecuacin E9.5.2 para obtener

Despus se multiplica la ecuacin E9.5.1 por (0.3)/3 y se resta de la


ecuacin E9.5.3 para eliminar X1. Luego de efectuar estas operaciones el sistema
de ecuaciones es

Para completar la eliminacin hacia adelante X2 debe eliminarse de la


ecuacin E9.5.6. Para llevar a cabo esto, se multiplica la ecuacin E9.5.5 por -
0.190000/7.00333 y se resta el resultado de la ecuacin E9.5.6. Esto elimina X2 de
la tercera ecuacin y reduce el sistema a una forma triangular superior:

Ahora se pueden resolver estas ecuaciones hacia atrs. En primer lugar


de la ecuacin E9.5.9 se despeja X3

8
Sustituyendo en E9.5.8

De la que se despeja

9
Ejemplo 2.

10
11
Eliminacin Gauss-Jordan
El mtodo de Gauss-Jordan es una variacin de la eliminacin Gaussiana.
La principal diferencia consiste en que cuando una incgnita se elimina en el mtodo
de Gauss-Jordan, sta es eliminada de todas las otras ecuaciones, no solo de las
subsecuentes. Adems todos los renglones se normalizan a dividirlos entre su
elemento pivote. De esta forma el paso de eliminacin genera una matriz identidad
en vez de una triangular. Figura X.
En consecuencia, no es necesario usar la sustitucin hacia atrs para
obtener la solucin.

12
Figura X.
Representacin grafica del mtodo de Gauss-Jordan. El
superndice (n) significa que los elementos del vector del lado
derecho se han modificado n veces (en este caso n=3)

Aunque la tcnica de Gauss Jordan y la eliminacin de Gauss podran ser


idnticas, la primera requiere ms trabajo. Con el empleo de un enfoque especial,
se determina que el nmero de flops que se involucra en la tcnica de Gauss-Jordan
simple es

As, la tcnica de Gauss-Jordan involucra aproximadamente 50 por ciento


ms operaciones de la eliminacin de Gauss. Por tanto la eliminacin de Gauss es
el mtodo ms sencillo que se prefiere para obtener las soluciones de ecuaciones
algebraicas lineales.

Algoritmo (Matlab)
clear;

clc;

fprintf('Dame la matriz aumentada\n\n');

f=input('Cuantas filas tiene la matriz: ');

c=input('Cuantas columnas tiene la matriz: ');

%******************************************************
*****

13
%** En los siguientes for anidados se da entrada a
los **

%** datos de la matriz aumentada, los cuales son


dados **

%** primero la columna 1, despus la 2 y as


sucesivamente**

%******************************************************
*****

for k=1:c

for j=1:f

fprintf('fila : %x\n',j)

fprintf('columna : %x',k)

r=input('Numero de esta fila y columna: ');

a(j,k)=r;

j=j+1;

end

k=k+1;

end

pause

%******************************************************
***

%** En seguida se normalizan los pivotes y se hacen


cero**

14
%** todos los nmeros por debajo de
ellos **

%******************************************************
***

for k=1:c-1

a(k,:)=a(k,:)/a(k,k);

for j=k+1:f

a(j,:)=a(j,:)-a(k,:)*a(j,k);

j=j+1;

pause

end

k=k+1;

pause

end

%******************************************************

%** En la siguiente seccin se hacen cero los nmeros**

%** que estn por encima de la diagonal principal **

%******************************************************

for k=f:-1:2

15
for j=k-1:-1:1

a(j,:)=a(j,:)-a(k,:)*a(j,k);

j=j-1;

pause

end

k=k-1;

pause

end

fprintf('resultado\n');

16
Ejemplo 1

17
18
Ejemplo 2. Sistema de ecuaciones resuelto en Matlab
+ =
+ + = .
+ = .
Dame la matriz aumentada

Cuantas filas tiene la matriz: 3

Cuantas columnas tiene la matriz: 4

fila : 1

columna : 1Numero de esta fila y columna: 4

fila : 2

columna : 1Numero de esta fila y columna: 6

fila : 3

columna : 1Numero de esta fila y columna: 8

fila : 1

columna : 2Numero de esta fila y columna: 12

fila : 2

columna : 2Numero de esta fila y columna: 20

fila : 3

columna : 2Numero de esta fila y columna: 1

fila : 1

columna : 3Numero de esta fila y columna: -7

fila : 2

columna : 3Numero de esta fila y columna: 12

fila : 3

columna : 3Numero de esta fila y columna: -17

fila : 1

columna : 4Numero de esta fila y columna: 33

fila : 2

19
columna : 4Numero de esta fila y columna: 12

fila : 3

columna : 4Numero de esta fila y columna: 45

a=

4 12 -7 33

6 20 12 12

8 1 -17 45

a=

1.0000 3.0000 -1.7500 8.2500

0 2.0000 22.5000 -37.5000

8.0000 1.0000 -17.0000 45.0000

a=

1.0000 3.0000 -1.7500 8.2500

0 2.0000 22.5000 -37.5000

0 -23.0000 -3.0000 -21.0000

a=

1.0000 3.0000 -1.7500 8.2500

0 2.0000 22.5000 -37.5000

20
0 -23.0000 -3.0000 -21.0000

a=

1.0000 3.0000 -1.7500 8.2500

0 1.0000 11.2500 -18.7500

0 0 255.7500 -452.2500

a=

1.0000 3.0000 -1.7500 8.2500

0 1.0000 11.2500 -18.7500

0 0 255.7500 -452.2500

a=

1.0000 3.0000 -1.7500 8.2500

0 1.0000 11.2500 -18.7500

0 0 1.0000 -1.7683

a=

1.0000 3.0000 -1.7500 8.2500

0 1.0000 0 1.1437

0 0 1.0000 -1.7683

21
a=

1.0000 3.0000 0 5.1554

0 1.0000 0 1.1437

0 0 1.0000 -1.7683

a=

1.0000 3.0000 0 5.1554

0 1.0000 0 1.1437

0 0 1.0000 -1.7683

a=

1.0000 0 0 1.7243

0 1.0000 0 1.1437

0 0 1.0000 -1.7683

a=

1.0000 0 0 1.7243

0 1.0000 0 1.1437

0 0 1.0000 -1.7683

22
Descomposicin LU
El principal recurso de la descomposicin LU es que el paso de la
eliminacin que toma mucho tiempo se puede formular de tal manera que involucre
solo operaciones con la matriz de coeficientes [A]. Por esto, es muy adecuado para
aquellas situaciones donde se deben evaluar muchos vectores {B} del lado derecho
para un solo valor de [A]
[A]{X}={B} (10.1)
Como se describi al principio, la eliminacin de Gauss representa una
forma satisfactoria para resolver tales sistemas, resulta eficiente cuando deben
resolverse ecuaciones con los mismos coeficientes [A], pero con diferentes
constantes del lado derecho.
Los mtodos de descomposicin LU superan el tiempo usado en las
eliminaciones para la matriz [A] de las manipulaciones del lado derecho {B}. Una
vez que [A] se ha descompuesto, los mltiples vectores del lado derecho {B} se
pueden evaluar de manera diferente.
De manera similar al caso de la eliminacin de Gauss, la descomposicin
LU requiere de pivoteo para evitar la divisin entre cero. Sin embargo, para
simplificar la siguiente descripcin, abordaremos el tema del pivoteo despus de
que el planteamiento fundamental se haya elaborado.

Adems, la siguiente explicacin se limita a un conjunto de tres ecuaciones


simultneas. Los resultados se pueden extender en forma directa a sistemas n
dimensional.

La ecuacin (10.1) se reordena como


[A]{X}-{B}=0 (10.2)

Que se puede expresar como un sistema triangular superior

23
Observe que esto es similar a la manipulacin que ocurre en el primer paso
de la eliminacin de Gauss. Es decir, se utiliza la eliminacin para reducir el sistema
a una forma triangular superior. La ecuacin (10.3) tambin se expresa en notacin
matricial y se reordena como

[U]{X} {D} = 0 (10.4)


Ahora, suponga que existe una matriz diagonal inferior con nmeros 1 en la
diagonal,

Que tiene la propiedad de que cuando se pre multiplica por la ecuacin


(10.4), el resultado es la ecuacin (10.2). Es decir,

[L]{[U]{X} {D}} = [A]{X} {B} (10.6)


Si esta ecuacin se satisface, segn las reglas de multiplicacin entre
matrices, se obtendr
[L][U] = [A] (10.7)
Y

[L]{D} = {B} (10.8)


Una estrategia de dos pasos (vase figura 10.1) para obtener soluciones se
basa en las ecuaciones (10.4), (10.7) y (10.8):
1. Paso de descomposicin LU. [A] se factoriza o descompone en las
matrices triangulares inferior [L] y superior [U].
2. Paso de la sustitucin. [L] y [U] se usan para determinar una solucin {X}
para un lado derecho {B}. Este paso, a su vez, se divide en dos. Primero, la ecuacin
(10.8) se usa para generar un vector intermedio {D} mediante sustitucin hacia
adelante.
Despus, el resultado se sustituye en la ecuacin (10.4), la que se resuelve
por sustitucin hacia atrs para {X}.

24
25
Algoritmo

26
Ejemplo 1.

27
Algoritmo Matlab

clear;
clc;

%****************************************************************
%** Se ingresan los datos de la matriz a resolver **
%****************************************************************

fprintf('Resolucion de matrices por el metodo de Descomposicion LU\n\n');


i=input('Cuantas filas tiene la matriz: ');
j=input('Cuantas columnas tiene la matriz: ');
%** Al ingresar la matriz tiene que ser de esta forma [a b c;d e f;g h i]
a=input('dame la matriz: ');
nn=i;

28
%*********************************************************
%** En seguida se encutran las matrices L y U **
%*********************************************************

for i=1:nn

L(i,i)=1;
end

for j=1:nn

u(1,j)=a(1,j);
end

for i=2:nn

L(i,1)=a(i,1)/u(1,1);
end

for n=2:nn

for j=n:nn
h=0;

for k=1:n-1

h=h+L(n,k)*u(k,j);
end
u(n,j)=a(n,j)-h;

end

for i=n+1:nn

h=0;

for k=1:n-1

h=h+L(i,k)*u(k,n);
end

L(i,n)=(a(i,n)-h)/u(n,n);

end
end

29
L

%**************************************************************
%** En la siguiente seccion se evaluan los resultados **
%**************************************************************

fprintf('\n\n La matriz Y son los resultados de la primera matriz y


es\n');
fprintf('\n un vector columna\n\n');
y=input('dame la matriz y: ');
for zz=1:i

z(zz,1)=0;
end

z(1,1)=y(1,1);

for i=2:nn

h=0;

for j=1:i-1

h=h+L(i,j)*z(j,1);

j=j+1;

end

z(i,1)=y(i,1)-h;

i=i+1;

end

x(nn,1)=z(nn,1)/u(nn,nn);

30
for i=nn-1:-1:1

h=0;

for j=i+1:nn

h=h+u(i,j)*x(j,1);

j=j+1;

end

x(i,1)=(z(i,1)-h)/u(i,i);

end

clc;

fprintf('Resultado\n');

for i=1:nn

fprintf('x %d:\n',i);

x(i,1)

i=i+1;

end

Ejemplo 2

Resolucion de matrices por el metodo de Descomposicion LU

Cuantas filas tiene la matriz: 3

Cuantas columnas tiene la matriz: 3

dame la matriz: [4 12 -7;6 20 12;8 1 -17]

31
u=

4.0000 12.0000 -7.0000

0 2.0000 22.5000

0 0 255.7500

L=

1.0000 0 0

1.5000 1.0000 0

2.0000 -11.5000 1.0000

La matriz Y son los resultados de la primera matriz y es

un vector columna

dame la matriz y: [33;12;45]

Resultado

x 1:

ans =

1.7243

x 2:

32
ans =

1.1437

x 3:

ans =

-1.7683

33
Referencias bibliogrficas.

Mtodos numricos para ingenieros, Steven C. Chapra, Raymond P. Canale. Quinta edicin

Referencias electrnicas.

http://www.mat.ucm.es/~rrdelrio/documentos/practica3_200506.pdf

http://proton.ucting.udg.mx/~jnorato/materias/metodos/matrix/lu/index.htm

http://www.gridmorelos.uaem.mx/~mcruz//cursos/mn/JORDAN.pdf

34

Das könnte Ihnen auch gefallen