Beruflich Dokumente
Kultur Dokumente
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
Despejando 2
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.
4
Sustitucin hacia atrs. De la ltima ecuacin se despeja el trmino Xn:
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
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)
Algoritmo (Matlab)
clear;
clc;
%******************************************************
*****
13
%** En los siguientes for anidados se da entrada a
los **
%******************************************************
*****
for k=1:c
for j=1:f
fprintf('fila : %x\n',j)
fprintf('columna : %x',k)
a(j,k)=r;
j=j+1;
end
k=k+1;
end
pause
%******************************************************
***
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
%******************************************************
%******************************************************
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
fila : 1
fila : 2
fila : 3
fila : 1
fila : 2
fila : 3
fila : 1
fila : 2
fila : 3
fila : 1
fila : 2
19
columna : 4Numero de esta fila y columna: 12
fila : 3
a=
4 12 -7 33
6 20 12 12
8 1 -17 45
a=
a=
a=
20
0 -23.0000 -3.0000 -21.0000
a=
0 0 255.7500 -452.2500
a=
0 0 255.7500 -452.2500
a=
0 0 1.0000 -1.7683
a=
0 1.0000 0 1.1437
0 0 1.0000 -1.7683
21
a=
0 1.0000 0 1.1437
0 0 1.0000 -1.7683
a=
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.
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
24
25
Algoritmo
26
Ejemplo 1.
27
Algoritmo Matlab
clear;
clc;
%****************************************************************
%** Se ingresan los datos de la matriz a resolver **
%****************************************************************
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 **
%**************************************************************
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
31
u=
0 2.0000 22.5000
0 0 255.7500
L=
1.0000 0 0
1.5000 1.0000 0
un vector columna
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