Metodo Gauss Jordan y LU
Metodo Gauss Jordan y LU
Metodo Gauss Jordan y LU
Definición
En esta sección desarrollamos un método para resolver un sistema de ecuaciones lineales general
AX B en N ecuaciones con N incógnitas. El objetivo es construir un sistema triangular superior
equivalente UX Y que podamos resolver usando el método de la sección 3.3.
Se dice que dos sistemas de orden NxN son equivalentes cuando tienen el mismo conjunto de
soluciones. Los teoremas del algebra lineal prueban que hay ciertas transformaciones que no
cambian el conjunto de soluciones de un sistema de ecuaciones lineales.
TRANSFORMACIONES ELEMENTALES.
La forma habitual de usar (3) es reemplazar una ecuación por la diferencia de esa ecuación y un
múltiplo de otra. Estos conceptos se ilustran en el siguiente ejemplo.
Ejemplo 1
2 x1 x2 – x3 1
5 x1 2 x2 2 x3 –4
3x x x 5
1 2 3
Solución
10 x1 5 x2 – 5 x3 5
10 x1 4 x2 4 x3 –8
30 x 10 x 10 x 50
1 2 3
Aplicando la transformación de sustitución (3) , la incógnita x1 es eliminada de las ecuaciones
segunda y tercera sustrayendo la primera de ambas. El sistema lineal equivalente es.
10 x1 5 x2 – 5 x3 5
x2 9 x3 –13 …………………..(@)
5 x2 25 x3 35
10 x1 5 x2 – 5 x3 5
x2 9 x3 –13
20 x3 100
100
x3 5
20
x2 9(5) 13 32
5(32) 5(5) 5
x1 14
10
La forma eficaz de trabajar es almacenar todas las constantes del sistema lineal AX B En una
matriz de orden N ( N 1) que se obtiene añadiendo a la matriz A una columna, la columna
(N 1) -ésima, en la que se almacena los términos de B (es decir, akN 1 bk ). Cada fila de su
matriz, que se llama matriz ampliada del sistema y se denota por A | B , contiene toda la
información necesaria para representar la correspondiente ecuación del sistema lineal:
Un sistema AX B , cuya matriz amplia viene dad en (7), puede resolverse realizando las
operaciones elementales con las filas de la matriz amplia A | B . Las variables xk no sirven más
que para marcar el sitio de los coeficientes y pueden ser omitidas hasta el final de los cálculos.
OPERACIONES ELEMENTALES CON LAS FILAS
Teorema.- Cualquiera de las siguientes operaciones aplicada a la matriz ampliada (7) produce un
sistema lineal equivalente.
(10) Sustitución: Una fila pude ser reemplazada por la suma de esa fila mas un múltiplo
de cualquier otra fila; o sea, filar filar mrq filaq .
Como se conoce de los cursos previos de algebra lineal, la fórmula habitual de usar (10) es
reemplazar una fila por la diferencia entre esa fila y un múltiplo de otras.
PIVOTES Y MULTIPLICADORES
Definición.- El elemento aqq de la matriz de los coeficientes en el paso q+1 que se usara en la
eliminación de arq , para r q 1, q 2,..., N , se llama q-ésimo pivote y la q-ésima se llama fila
pivote, los números mrq arq / aqq r q 1, q 2,..., N por los que se multiplica la fila pivote
para restarla de las correspondientes filas posteriores se llama multiplicadores de la eliminación.
El siguiente ejemplo muestra cómo se usan las operaciones descritas en el teorema 3.8 para obtener
un sistema triangular superior UX Y que sea equivalente a un sistema lineal AX B en el que
A es una matriz de orden N N .
Ejemplo
x1 x2 – x3 –3
6 x1 2 x2 2 x3 2
–3x 4 x x 1
1 2 3
Solución
Pivote 1 1 1 3
m21 6 6 2 2 2
m31 3 3 4 1 1
1 1 1 3
Pivote 0 4 8 20
m32 1.75 0 7 2 8
1 1 1 3
0 4 8 20
0 0 12 27
27
x3 2.25
12
20 8(2.25)
x2 0.5
4
x1 3 (0.5) (2.25) 0.25
GAUSS-JORDAN
Definición
El método de Gauss-Jordan es una variación de la eliminación de Gauss. La principal diferencia
consiste en que cuando una incógnita se elimina en el método de Gauss-Jordan, ésta es eliminada de
todas las otras ecuaciones, no sólo de las subsecuentes. Además, todos los renglones se normalizan
al dividirlos entre su elemento pivote. De esta forma, el paso de eliminación genera una matriz
identidad en vez de una triangular (figura 9.9).
En consecuencia, no es necesario usar la sustitución hacia atrás para obtener la solución.
El método se ilustra mejor con un ejemplo.
Ejemplo
Método de Gauss-Jordan Planteamiento del problema. Con la técnica de Gauss-Jordan resuelva el
sistema del ejemplo:
2 x1 – 6 x2 – x3 –38
–3x1 – x2 7 x3 –34
–8 x x – 2 x –20
1 2 3
Solución
2 2 6 1 38
3 1 7 34
8 1 2 20
1 3 0.5 19
m21 3 3 1 7 34
m31 8 8 1 2 20
1 3 0.5 19
10 0 10 5.5 91
(1) 0 23 6 172
1 0 2.15 8.3
0 1 0.55 9.1
18.65 0 0 18.65 37.3
1 0 0 4
0 1 0 8
0 0 1 2
x1 4
x2 8
x3 2
PROGRAMACION
function X=uptrbk(A,B)
%Datos
% -A es una matriz invertible de orden N x N
% -B es una matriz de orden N x 1
%Resultados
% -X es una matriz de orden N x 1 que contiene
% la solucion de AX=B.
%Inicializamos X y una matriz C que sirve de almacentemp
[N N]=size(A);
X=zeros(N,1);
C=zeros(1,N+1);
%Calculo de la matriz ampliada Aug=[A|B]
Aug=[A B];
for q=1:N-1
%Pivote parcial en la columna q-esima
[Y,j]=max(abs(Aug(q:N,q)));
%Intercambiamos las filas q-esima y (j+q-1)-esima
C=Aug(q,:);
Aug(q,:)=Aug(j+q-1,:);
Aug(j+q-1)=C;
if Aug(q,q)==0
'A es singula. No hay solucion o no es unica.';
break
end
%Proceso de eliminacion en la columna q-esima
for k=q+1:N
m=Aug(k,q)/Aug(q,q);
Aug(k,q:N+1)=Aug(k,q:N)-m*Aug(q,q:N+1);
end
end
%Sustitucion regresiva en [U|Y] usando el programa 3.1
X=backsub(Aug(1:N,1:N),Aug(1:N,N+1));
PROBLEMAS RESUELTOS
PROBLEMA 1.- Use la eliminación de Gauss para resolver el sistema que sigue:
8 x1 2 x2 – 2 x3 –2
10 x1 2 x2 4 x3 4
12 x 2 x 2 x 6
1 2 3
Emplee pivoteo parcial y compruebe las respuestas sustituyéndolas en las ecuaciones originales.
Solución
pivote 8 2 2 2
m21 1.25 10 2 4 4
m31 1.5 12 2 2 6
8 2 2 2
pivote 0 0.5 6.5 6.5
m31 2 0 1 5 9
8 2 2 2
0 0.5 6.5 6.5
0 0 8 4
4
x3 0.5
8
6.5 6.5(0.5)
x2 6.5
0.5
2 (2)(0.5) 2(6.5)
x1 1.5
8
PROBLEMA 2.- la matriz de hilbert es un ejemplo clasico de matriz mal condicionada: cambios
pequeñosen sus coeficientes provocan cambios grandes en la solucion del sistema perturbado.
Calcule la solucion exacta de AX B (deje todos los numeros como fracciones y utilice
aritmetica exacta) siendo la matriz de los coeficientes la matriz de Hilbert de orden 4x4
dada por:
1 1 1
1 2 3 4
1
1 1 1 1
0
2 5
, B
3 4
A
1 1 1 1
0
3 4 5 6 0
1 1 1 1
4 5 6 7
Solución
1 1 1 1
1 2 3 4
1 1 1 1 1 0
m21
2 2 3 4 5
1 1 1 1 1
m21 0
3 3 4 5 6
1 1 1 1 1
m21
4 4 5 6 7 0
1 1 1 1
1 2 3 4 1
0
12 1 1 3 1
1 12 12 40 2
1 1 4 1 1
m32 0
1 12 45 12 3
9 3 1 9 1
m42 0
10 40 12 112 4
1 1 1 1 1
m12 1
2 2 3 4 1
0 1 1
9
6
10 1
180 1 1 1
0 0
1 180 120 6
3 1 9 1
m43 0 0
2 120 700 5
1 1 1 4
m13 1 0
6 6 5 1
m23 0
1 9 6
1 1
1 10 1
0 3 30
0 1
2 1
2800 1 1
0 0 0
1 2800 20
1 9
m14 1
20 1 0 0 1
20
m24
3 36
3
5 0 1 0 1
5
3 30
m34 3
2 0 0 1 1
2
140
0 0 0 1
1
1 0 0 0 16
0 1 0 0 120
0 0 1 0 240
0 0 0 1 140
La solución
x1 16
x2 120
x3 240
x4 140
FACTORIZACIÓN LU:
1. Definición:
Diremos que una matriz invertible A admite una factorización LU si puede expresarse
como el producto de una matriz triangular inferior L , cuyos elementos diagonales son
todos iguales a 1 , por una matriz triangular superior U :
(1) A LU
La condición de que A sea invertible implica que ukk 0 para todo k .La notación para
los elementos de L es mij ; la razón para elegir mij en vez de lij la daremos enseguida.
(2) LUX B
y1 b1
m21 y1 y2 b2
(4)
m31 y1 m32 y2 y3 b3
m41 y1 m42 y2 m43 y3 y4 b4
Para obtener y1 , y2 , y3 e y4 y, una vez que los tenemos, resolver el sistema triangular superior
5 2 1
1 0 3
3 1 6
Solución:
Usando el método descrito antes y sabiendo que la matriz de los coeficientes admite la
factorización triangular
5 2 1
0 2 / 5 14 / 5 11
...(2)
2
0 11 / 5 27 / 5
5 2 1
0 2 / 5 14 / 5
0 0 10
Si en (1) :
a21 1 a31 3
a11 5
l21 y l31
a11 5 a11 5
Si en (2) :
2 11
a32 11
a22
l32 5
5 a22 2 2
5
1 0 0
L 1 / 5 1 0
3 / 5 11 / 2 1
Entonces:
5 2 1 1 0 0 5 2 1
A 1 0 3 1 / 5 1
0 0 2 / 5 14 / 5 LU
3 1 6 3 / 5 11 / 2 1 0 0 10
EJERCICIO 2.- Resolver el sistema AX B siendo (*Problema propuesto 1de la pag
181 chapra)
1 3 5 7 1
2 1 3 5 2
A y B
0 0 2 5 3
2 6 3 1 4
Solucion
1 3 5 7 ( 2) ;(2)
2 1 3 5
...(1)
0 0 2 5
2 6 3 1
1 3 5 7
0 7 7 9
7 ...(2)
0 0 2 5
2
0 0 7 15
1 3 5 7
0 7 7 9
0 0 2 5
0 0 0 5 / 2
Si en (1) :
a11 1
a21 2 a31 0 a 2
l21 2 ; l31 0 y l41 41 2
a11 1 a11 1 a11 1
Si en (2) :
a22 1
a32 0 a42 0
l32 0 y l42 0
a22 7 a22 7
Si en (2) :
a33 2
a43 7
l43
a33 2
1 0 0 0
2 1 0 0
L
0 0 1 0
2 0 7/2 1
Entonces:
1 3 5 7 1 0 0 0 1 3 5 7
2 1 3 5 2 1 0
0 0 7 7 9
A LU
0 0 2 5 0 0 1 0 0 0 2 5
2 6 3 1 2 0 7/2 1 0 0 0 5 / 2
2 y1 y2 2
y3 3
2 y1 7 y y4 4
2 3
Obteniendo:
y1 1 ; y3 3
7(3) 9
y2 2 2(1) 0 ; y4 4 2(1) 4.5
2 2
Osea: Y [1 0 3 4.5]'
7 x2 7 x3 9 x4 0
2 x3 5 x4 3
5 x 9 / 2
2 4
Utilizando el método de sustitución regresiva, se obtendrá:
9 7(3) 9(1.8) 24
x4 2 9 1.8 ; x2 0.685714
5 5 7 35
2
3 5(1.8) 3(24) 47
x3 3 ; x1 1 5(3) 7(1.8) 1.342857
2 35 35
47 24
Obteniendo como resultado final: X [ 3 1.8]'
35 35
PROGRAMACIÓN DEL MÉTODO
Pasos:
Abrir nuestro programa que en este caso utilizaremos el MATLAB .
Escribir en la ventana de comando edit. para poder allí escribir nuestro código:
Comprobaremos el resultado :
L=
1.00 0 0
-0.20 1.00 0
-0.60 5.50 1.00
U=
Pasos:
Abrir nuestro programa que en este caso utilizaremos el MATLAB .
Escribir en la ventana de comando edit. para poder allí escribir nuestro código:
>> edit
Escribir el código en el script que se ha abierto, al cual le daremos el nombre de
lufact(A,B)
function X=lufact(A,B)
%Datos
%A : es una matriz de orden NxN
%B : es una matriz de orden Nx1
%Resultado
%X : es la matriz de orden Nx1 solucion de AX=B
%inicializamos X,Y la matriz de almacenamiento temporal C
%y la matriz fila R donde se registran los intercambios de filas
[N,N]=size(A);
X=zeros(N,1);
Y=zeros(N,1);
C=zeros(1,N);
R=1:N;
for q=1:N-1
%determinacion de las filas q-esima y j-esima
[max1,j]=max(abs(A(q:N,q)));
%intercambio de filas q-esima y j-esima
C=A(q,:);
A(q,:)=A(j+q-1,:);
A(j+q-1,:)=C;
d=R(q);
R(q)=R(j+q-1);
R(j+q-1)=d;
if A(q,q)==0
disp('A essingular, no hay solucion o no es unica');
break
end
%calculo del multiplicador
%que se guarda en la parte sub diagonal de A
for k=q+1:N
mult=A(k,q)/A(q,q);
A(k,q)=mult;
A(k,q+1:N)=A(k,q+1:N)-mult*A(q,q+1:N);
end
end
%resolucion para hallar Y
Y(1)=B(R(1));
for k=2:N
Y(k)=B(R(k))-A(k,1:k-1)*Y(1:k-1);
end
%resolucion para hallar X
X(N)=Y(N)/A(N,N);
for k=N-1:-1:1
X(k)=(Y(k)-A(k,k+1:N)*X(k+1:N))/A(k,k);
end
Comprobaremos el resultado :
>> A=[1 3 5 7;2 -1 3 5;0 0 2 5;-2 -6 -3 1];
>> B=[1;2;3;4];
>> lufact(A,B)
ans =
1.342857142857142
0.685714285714286
-3.000000000000000
1.800000000000000