Вы находитесь на странице: 1из 37

Mtodos Numricos.

DESCOMPOSICION LU.
Anlisis del Mtodo.
Como se sabe el mtodo de Gauss resuelve sistemas de ecuaciones algebraicas lineales
de la forma [A]*{X} = {B}. En el lgebra lineal, la factorizacin o descomposicin LU
es una forma de factorizacin de una matriz como el producto de una matriz triangular
inferior y una superior.
La descomposicin se usa en el anlisis numrico para resolver sistemas de ecuaciones
(ms eficientemente) o encontrar las matrices inversas, si la matriz [A] es una matriz
no singular (si lo fuera, entonces la descomposicin podra no ser nica).
Este mtodo es ms eficaz que la eliminacin de Gauss porque se puede resolver las
ecuaciones con los mismos coeficientes de [A] pero para distintos trminos
independientes {B}.
Existen algunas breves restricciones para este mtodo una de ellas es que la forma
matricial del sistema de ecuaciones lineales debe ser la misma que la de una Matriz
Cuadrada.
Al aplicar el mtodo de la eliminacin de Gauss resulta ineficiente cuando deben
resolverse ecuaciones con los mismos coeficientes de la matriz [A] pero con diferentes
constantes del lado derecho del vector {B}.
Los mtodos de descomposicin LU separan el tiempo usando en las eliminaciones
para la matriz [A] de las manipulaciones del lado derecho del vector {B}. Una vez que
la matriz [A] se ha descompuesto los mltiples vectores del lado derecho del vector {B}
se puede evaluar de manera eficiente.
Los mtodos de descomposicin LU toma como separado la matriz [A] de los vectores
{B} y las incgnitas haciendo ms fcil encontrar las diferentes soluciones para los
diferentes vectores {B}, un hecho muy interesante es que la eliminacin de Gauss se
puede expresar como una descomposicin LU.
Para resolver este mtodo tenemos que tener en cuenta que la matriz sea cuadrada.
Este mtodo es muy adecuado para aquellas situaciones donde se deben evaluar
muchos vectores {B} del lado derecho para una sola matriz [A].
Matriz Inversa
Las matrices L y U pueden ser usadas para calcular la matriz inversa mediante:
A 1 = U 1L 1
Algunas implementaciones que invierten matrices usan este mtodo.

Byron Patricio Rodrguez Merchn.

Mtodos Numricos.
Determinante de una matriz
Las matrices L y U pueden ser usadas para calcular el determinante de la matriz A muy
eficientemente porque det(A) = det(L)det(U) y los determinantes de matrices
triangulares son simplemente el producto de los elementos de sus diagonales. En
particular, si L es una matriz triangular en cuya diagonal todos los elementos son uno,
entonces:

Para aplicar la descomposicin LU nos basamos en un sistema de ecuaciones lineales


(S.E.L).
a11 x 1+ a12 x 2 +a13 x3 + +a1 m x m=b1
a21 x 1 +a 22 x2 + a23 x 3 + +a 2 m x m=b2
a31 x 1 +a32 x2 +a 33 x 3+ +a 3 m x m=b3



an 1 x1 +a n 2 x 2+ an 3 x 3 + + an m x m=b n
Expresando el sistema de ecuaciones lineales en forma matricial se tiene:

A * X B
a11
a
21

a13

. . .

a 22

a 23

. . .

a31

a32

a33

. . .

. . .

. . .

.
a
n1

. . .

an2

a n3

. . .

a12

(1)
a1n

x1
x
2

a 2 n
a3n

x3

b1
b
2

b3

. * . .
.
. .


. .
.

a nn x n
bn

Contiene los coeficientes del sistema de ecuaciones lineales (S.E.L).

Byron Patricio Rodrguez Merchn.

Mtodos Numricos.

Contiene las incgnitas del sistema de ecuaciones lineales (S.E.L).

Contiene los trminos independientes del sistema de ecuaciones lineales (S.E.L).

La obtencin de las ecuaciones es como el planteado en el libro estudiado Mtodos


Numricos para Ingenieros de (Steven C. Chapra y Raymond P. Canale).
Al reordenar la ecuacin tenemos:

A * X B 0

(2)

Suponiendo que la ecuacin se puede expresar como un sistema triangular superior se


tiene:

U * X Z 0

(3)

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

L U * X Z A * X B

(4)

Si esta ecuacin se satisface, segn la regla entre multiplicacin de matrices tenemos:

A L * U

(5)

L * Z B

(6)

Para la descomposicin LU la matriz [A] se factoriza o descompone en la matriz


triangulares inferiores [L] y la matriz triangular superior [U].
Paso de la sustitucin [L] y [U] se usan para determinar una solucin {X} para un
lado derecho {B}. Este paso se divide a su vez en dos, primero tenemos que resolver la
ecuacin (6) la cual se usa para generar un valor intermedio {Z} mediante sustitucin
hacia adelante, despus sustituimos el vector encontrado {Z} en la ecuacin (3) y se
resuelve por sustitucin hacia atrs con lo cual obtenemos el vector solucin {X}.
Otro mtodo de obtencin de las ecuaciones es como el planteado en clases partiendo
de la misma ecuacin (1) tenemos.

Byron Patricio Rodrguez Merchn.

Mtodos Numricos.

A * X B

(1)

De donde expresamos que:

A L * U

(2)

Donde:
[L]

Matriz triangular inferior con la condicin que l (i, i)=1.


[U ]

Matriz triangular superior.


Reemplazando la ecuacin (2) en la ecuacin (1) tenemos:

L * U * X B

(3)

Multiplicando a ambos miembros de la ecuacin (3) por la inversa de la matriz [L]


tenemos:

L 1 * L * U * X B * L 1

(4)

De donde obtenemos las siguientes ecuaciones:

U * X Z
L * Z B

(5)
(6)

De donde primero se resuelve la ecuacin (6) la cual se usa para generar un valor
intermedio {Z} mediante sustitucin hacia adelante, despus sustituimos el vector
encontrado {Z} en la ecuacin (5) y se resuelve por sustitucin hacia atrs con lo cual
obtenemos el vector solucin {X}.
El ultimo mtodo es el mas empleado por su facilidad de entender las formulas que se
encuentran.

Descomposicin de Doolittle.
Este mtodo se basa en colocar o aceptar que la matriz [L] que tiene la siguiente
condicin l (i,i)=1, desde i=1 hasta n a este mtodo tambin se lo llama

Byron Patricio Rodrguez Merchn.

Mtodos Numricos.
descomposicin LU con la eliminacin de Gauss. El mtodo de Doolittle genera [L] y
[U] barriendo las columnas y filas de la matriz.
Para la descomposicin LU se factoriza la matriz [A] en una matriz triangular inferior
[L] y una matriz triangular superior [U] para lo cual utilizamos el mtodo de
descomposicin de Doolittle.

Matriz triangular inferior con la condicin que l (i,i)=1.


1 0
l
21 1
l 31 l n 2
L . .
.
.

.
.
l
n1 l n 2

0
0
1
.
.
.

0 0 0 0
0 0 0 0
0 0 0 0

1 0 0 0
. 1 0 0

l n3

.
.

.
.

1 0
. 1

u13

u 23
u 33

.
.

.
.

.
.

u 2 n
u 3n

.
.

.
.

Matriz triangular superior.


u11 u12
0 u
22

0
0

u1n

.
.

0
.

.
0

.
.

.
0

.
0

.
0

.
.

0 .
.
. 0 u nn

.
.

De donde utilizamos el siguiente sistema de ecuaciones lineales (S.E.L) como ejemplo


con lo cual se resuelve y luego se puede generalizar el mtodo:

Byron Patricio Rodrguez Merchn.

Mtodos Numricos.
2 x1 3 x 2 x3 x 4 2 x5 3
x1 2 x 2 3 x3 3x 4 2 x5 1
3x1 2 x 2 3 x3 2 x 4 2 x5 2
2 x1 2 x 2 3 x3 2 x 4 3x5 4
x1 2 x 2 3 x3 2 x 4 2 x5 2
De donde aplicamos la siguiente condicin:

A L * U
a11
a
21

a12

a13

a 22

a 23

a 31

a 32

a 33

.
.

.
a
n1

an2

a n3

. . . a1n

1
l
21

. . . a 2 n
. . . a 3n

.
. . . .

. . . .
. . . a nn
. . .

ln2

l n1

ln2

l n3

l 31

0 0 0 0

u11
0

0 0 0 0
0 0 0 0

u13

u 22

u 23

u 33

.
0

.
0

.
0

.
.

0 .
.
. 0 u nn

1 0 0 0 *
. 1 0 0

. . 1 0
. . . 1

Representando en forma numrica.


3 1 1
2 1 0
2
1 2 3
3 2 l 21 1

3
2
3 2 2 l 31 l 32


2 2 3 2 3 l 41 l 42
1
2 3 2
2 l 51 l 52

0
0
1

0
0
0

l 43
l 53

1
l 54

0
0
0 *

0
1

u11 u12
0 u 22
0
0
0
0

u13
u 23
u 33

u14
u 24
u 34

u15
u 25
u 35

0
0

u 44
0

u 45
u 55

0
0

Realizando las respectivas operaciones se tiene.


u11 a11

u11 2

u12 a12

u12 3

u13 a13

u13 1

u14 a14

u14 1

u15 a15

u15 2

Byron Patricio Rodrguez Merchn.

u1n

u12

u 2 n
u 3n

.
.

Mtodos Numricos.

u11 * l 21 a 21
u11 * l 31 a 31
u11 * l 41 a 41
u11 * l 51 a 51

l 21

a 21
u11

l 31

a 31
u11

l 41

a 41
u11

l 51

a 51
u11

1
2
3
l 31
2
2
l 41
1
2
1
l 51
2
l 21

u12 * l 21 u 22 a 22

u 22 a 22 u12 * l 21

u 22 2 (3) * (1 / 2) 7 / 2

u13 * l 21 u 23 a 23

u 23 a 23 u13 * l 21

u 23 3 (1) * (1 / 2) 7 / 2

u14 * l 21 u 24 a 24

u 24 a 24 u14 * l 21

u 24 3 (1) * (1 / 2) 5 / 2

u15 * l 21 u 25 a 25

u 25 a 25 u15 * l 21

u 25 2 ( 2) * (1 / 2) 3

u12 * l 31 u 22 * l 32 a 32

l32 (a32 u12 * l 31 ) /(u 22 )

u12 * l 41 u 22 * l 42 a 42

l 42 (a 42 u12 * l 41 ) /(u 22 )

u12 * l 51 u 22 * l 52 a 52

l52 (a52 u12 * l 51 ) /(u 22 )

l 32 (2 ((3) * (3 / 2))) /( 7 / 2) 5 / 7
l 42 (2 ((3) * (1))) /( 7 / 2) 10 / 7
l 52 (2 ((3) * (1 / 2))) /( 7 / 2) 1 / 7
u13 * l 31 u 23 * l 32 u 33 a 33

u 33 a 33 u13 * l 31 u 23 * l 32

u14 * l 31 u 24 * l 32 u 34 a 34

u 34 a 34 u14 * l 31 u 24 * l 32

u15 * l 31 u 25 * l 32 u 35 a 35

u 35 a 35 u15 * l 31 u 25 * l 32

u 33 3 (( 1) * (3 / 2)) ((7 / 2) * (5 / 7)) 2


u 34 2 ((1) * (3 / 2)) ((5 / 2) * (5 / 7)) 37 / 7
u 35 2 (( 2) * (3 / 2)) (( 3) * (5 / 7)) 8 / 7

u13 * l41 u 23 * l42 u33 * l43 a43

l43 (a43 u13 * l41 u23 * l42 ) /(u33 )

u13 * l51 u 23 * l52 u33 * l53 a53

l53 (a53 u13 * l51 u 23 * l52 ) /(u33 )

l 43 (3 (( 1) * (1)) ((7 / 2) * (10 / 7))) /( 2) 1 / 2


l 53 (3 (( 1) * (1 / 2)) ((7 / 2) * ( 1 / 7))) /( 2) 1

Byron Patricio Rodrguez Merchn.

Mtodos Numricos.
u14 * l41 u24 * l42 u34 * l43 u 44 a44

u 44 a44 u14 * l41 u 24 * l42 u34 * l43

u15 * l41 u25 * l42 u35 * l43 u 45 a45

u 45 a45 u15 * l41 u 25 * l42 u35 * l43

u 44 2 ((1) * ( 1)) ((5 / 2) * ( 10 / 7)) (( 37 / 7) * (1 / 2)) 129 / 14


u 45 3 (( 2) * (1)) (( 3) * (10 / 7)) ((8 / 7) * (1 / 2)) 41 / 7
u14 * l51 u 24 * l52 u34 * l53 u44 * l54 a54

l54 (a54 u14 * l51 u 24 * l52 u34 * l53 ) /(u44 )

l 54 (2 ((1) * (1 / 2)) ((5 / 2) * (1 / 7)) (( 37 / 7) * (1))) /(129 / 14) 16 / 43


u15 * l51 u 25 * l52 u35 * l53 u 45 * l54 u55 a55
u55 a55 u15 * l51 u 25 * l52 u35 * l53 u 45 * l54
u 55 2 (( 2) * (1 / 2)) (( 3) * (1 / 7)) ((8 / 7) * (1)) (( 41 / 7) * (16 / 43)) 20 / 43
De donde se obtiene la siguiente expresin.
3 1 1
2
2 3
3 2
2
3 2 2

2 2 3 2 3
1
2 3 2
2

2
1

0
0
0 *

1 10 / 7 1 / 2
1
0
1 / 2 1 / 7 1 16 / 43 1
1
1/ 2
3/ 2

0
1
5/7

0
0
1

0
0
0

2
3
1
1
0 7/ 2 7/ 2
5/ 2
0
0
2
37 / 7
0
0

0
0

0
0

2
3
8/7

129 / 14 41 / 7
0
20 / 43

Generalizacin de formulas.
Luego de observar el ejemplo podemos generalizar las siguientes formulas sin tomar en
cuenta las variables i y j porque cuando implementamos en matlab esta las
identifica como imaginarios, por ejemplo la raz de -1.

Siempre que U (1,1)=A (1,1) y cumpla que sea diferente de cero.


Tambin debe cumplir la condicin que:
Para c=1, 2, 3,4,., n
L (c , c ) 1

Determinando los elementos de la primera fila de la matriz [U] y la primera


columna de la matriz [L].
Para c=2,3, 4,., n
U (1, c) =A (1, c)
L(c,1) A(c,1) / U (1,1)

Para determinar los elementos de la diagonal de la matriz [U] los cuales deben
ser diferentes de cero.
Para c=2, 3,4,.., n
Byron Patricio Rodrguez Merchn.

Mtodos Numricos.
U (c, c) A(c, c)

d c 1

( L(c, k ) * U (k , c))
d 1

Para los elementos restantes tanto de la matriz [L] como de la matriz [U].
Para c=2, 3, 4 n
Para f=c+1,c+2,c+3,., n
U (c, f ) A(c, f )

g c 1

( L(c, g ) * U ( g , f ))
g 1

A( f , c )

g c 1

( L( f , g ) * U ( g , c))
g 1

L( f , c )

U (c , c )

Algoritmo de la descomposicin LU.


Datos de entrada.

Coeficientes del sistema de ecuaciones lineales (S.E.L).

Datos de salida.

L
U

Coeficientes de la matriz triangular inferior.


Coeficientes de la matriz triangular superior.

Pasos.
1.- Determinamos que dimensiones tiene la matriz A(n, m) la matriz [A] debe
ser
cuadrada.
2.- Si el n~=m.
3.- Comentario no existe solucin la matriz no es cuadrada.
4.- Parar.
5.- U (1,1)=A (1,1).
6.- Si U (1,1) ==0.

Realizar pasos 6 al 8.

7.- Salida No se puede factorizar la matriz, no existe divisin para


cero.

Byron Patricio Rodrguez Merchn.

Mtodos Numricos.
8.- Parar.
9.- Para c=2, 3, 4,5,., n

Realizar pasos 9 al 12.

10.- U (1, c)=A (1, c).


11.- L(c, 1)=(A (c, 1)/U (1, 1)).
12.- Para.
13.- Para c=2, 3, 4, 5,.., n

Realizar pasos 13 a 32.

14.- Determinamos los elementos de la diagonal de la matriz U.


S=0.
15.- Para d=1, 2,3,, (c-1)

Realizar pasos 15 a 17.

16.- S=S+L(c,d)*U(d,c).
17.- Parar.
18.- U (c,c) =A (c, c)-S.
19.- Si U (c,c)==0

Realizar pasos 19 a 21.

20.- Salida No se puede factorizar no hay divisin para cero.


21.- Parar.
22.- Determinamos los dems elementos de las matrices L y U.
Para f=(c+1), (c+2), (c+3),., n

Realizar pasos 22 a 31.

23. - S1=0.
24.- S2=0.
25.- Para g=1, 2,3,, (c-1)

Realizar pasos 25 al 28.

26.- S1=S1+(L(c,g)*U(g,f)).
27.- S2=S2+(L(f,g)*U (g,c)).
28.- Parar.
29.- U (c,f)=A(c,f)-S1.
30.- L (f,c)=((A(f,c)-S2)/(U(c,c))).
31.- Parar.
32.- Parar.

Byron Patricio Rodrguez Merchn.

Mtodos Numricos.
33.-Parar programa.

Implementacin en Matlab para la descomposicin LU.

%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%

-----------------------------------------------------------------------Universidad de Cuenca.
Facultad de Ingeniera Escuela Civil.
Nombre: Byron Patricio Rodrguez Merchn.
Factorizacin LU.
Este mtodo sirve para solucionar varios conjuntos de sistemas de
ecuaciones lineales con la misma matriz de coeficientes [A], pero para
distintos trminos derechos {B} no homogneos (distintos de cero).
Expresando en forma matricial el sistema de ecuaciones lineales (S.E.L)
Se tiene:
[A]*{x}={B}
Datos de entrada:

Byron Patricio Rodrguez Merchn.

Mtodos Numricos.
%
[A]=Coeficientes del sistema de ecuaciones lineales.
% Datos de salida:
%
[L]=Matriz triangular inferior con la diagonal de 1.
%
[U]=Matriz triangular superior.
% -----------------------------------------------------------------------function [L,U]=LU(A)
disp('----------------------------------------------------------------')
disp('
Factorizacin LU
disp('
Universidad de Cuenca
disp('Realizado por: Byron Patricio Rodrguez Merchn')
disp('-----------------------------------------------------------------')

')
')

% Determinamos si la matriz [A] es cuadrada o no


% Donde:
%
n=Nmero de filas
%
m=Nmero de columna
[n,m]=size(A);
if n~=m
fprintf('No esiste solucin la matriz no es cuadrada')
return
end
% Creamos una matriz de ceros a exepcin de los elementos de la
diagona
% que en este caso son unos.
L=eye(n);
% Creamos una matriz de ceros.
U=zeros(n);
U(1,1)=A(1,1);
if U(1,1)==0
fprintf('No existe solucin porque no existe divisin para cero1')
return
end
% Calculamos los elementos de la primera fila de [U],y columna [L]
for c=2:n
U(1,c)=A(1,c);
L(c,1)=((A(c,1))/(U(1,1)));
end
for c=2:n
%Determinamos los elementos de la diagonal de la matrz [U]
S=0;
for d=1:(c-1)
S=S+L(c,d)*U(d,c);
end
U(c,c)=A(c,c)-S;
if U(c,c)==0
fprintf('No existe solucin porque no existe divisin
para cero2')
return

Byron Patricio Rodrguez Merchn.

Mtodos Numricos.
end
%Determinamos los elementos restantes de la matriz [U],[L]
for f=(c+1):n
S1=0;
S2=0;
for g=1:(c-1)
S1=S1+(L(c,g)*U(g,f));
S2=S2+(L(f,g)*U(g,c));
end
U(c,f)=A(c,f)-S1;
L(f,c)=((A(f,c)-S2)/(U(c,c)));
end
end
end

Funcionamiento en Matlab para la descomposicin LU.

>> A
A=
2
1
3

3
-2
2

-1
3
3

1
3
-2

2
-2
2

Byron Patricio Rodrguez Merchn.

Mtodos Numricos.
-2
1

2
2

-3
-3

2
2

-3
2

>> [L,U]=LU(A)
----------------------------------------------------------------Factorizacin LU
Universidad de Cuenca
Realizado por: Byron Patricio Rodrguez Merchn
----------------------------------------------------------------L=
1.0000
0
0
0
0
0.5000 1.0000
0
0
0
1.5000 0.7143 1.0000
0
0
-1.0000 -1.4286 0.5000 1.0000
0
0.5000 -0.1429 -1.0000 -0.3721 1.0000
U=
2.0000 3.0000 -1.0000 1.0000 2.0000
0 -3.5000 3.5000 2.5000 -3.0000
0
0 2.0000 -5.2857 1.1429
0
0
0 9.2143 -5.8571
0
0
0
0 -0.4651

Sustitucin hacia adelante para determinar el vector {Z}.


En este paso se obtendr el vector {Z} por la ecuacin dada.

L * Z B
1
l
21

0
1

0
0

0
0

0
0

z1
z
2

b1
b
2



l31 l32 1 0 0 * z3 b3


b
l41 l42 l43 1 0 z4
4
l51 l52 l53 l54 1 z5
b5

Byron Patricio Rodrguez Merchn.

Mtodos Numricos.
1
1/ 2

3/ 2

1
5/ 7

0
1

0
0


0 * z 3

1 10 / 7 1 / 2
1
0 z 4

1 / 2 1 / 7 1 16 / 43 1 z 5

z1 b1
l21 * z1 z 2 b2

z1
z
2

3
1

2
4

z1 3

z 2 b2 l 21 * z1

z 2 1 ((1 / 2) * (3)) 1 / 2

l31 * z1 l32 * z2 z3 b3

z3 b3 l31 * z1 l32 * z 2

z3 2 ((3 / 2) * (3)) ((5 / 7) * (1 / 2)) 43 / 7


l 41 * z1 l 42 * z 2 l 43 * z 3 z 4 b4

z 4 b4 l 41 * z1 l 42 * z 2 l 43 * z 3

z 4 4 (( 1) * (3)) (( 10 / 7) * (1 / 2)) ((1 / 2) * ( 43 / 7)) 131 / 14


l51 * z1 l52 * z 2 l53 * z3 l54 z 4 z5 b5
z5 b5 l51 * z1 l52 * z2 l53 * z3 l54 z 4
z 5 2 ((1 / 2) * (3)) (( 1 / 7) * (1 / 2)) (( 1) * (43 / 7)) (( 16 / 43) * (131 / 14)) 268 / 43
0
0
0
1
1/ 2
1
0
0

3/ 2 5/ 7
1
0

1
1 10 / 7 1 / 2
1 / 2 1 / 7 1 16 / 43

0
3
3

0 1 / 2 1

0 * 43 / 7 2

0 131 / 14 4

1 268 / 43 2

Generalizacin de las formulas.


Por lo tanto generalizamos para un sistema de ecuaciones lineales de n ecuaciones con
n incgnitas del ejemplo realizado tenemos las siguientes formula generalizadas.

Determinamos el primer elemento del vector {Z}.


Z (1)=B (1)

Determinamos los dems elementos del vector {Z}.

Byron Patricio Rodrguez Merchn.

Mtodos Numricos.
h 2,3,...., n

Para

.
h 1

Z ( h ) B ( h ) L ( h, k ) * Z ( k )
k 1

Algoritmo anlisis por sustitucin hacia adelante para


determinar la matriz {Z}.
Datos de entrada.

L
B

Coeficientes de la matriz triangular inferior.


Trminos independientes del sistema de ecuaciones lineales (S.E.L).

Datos de salida.

Vector que proporcionara la solucin del sistema.

Pasos.
1.- Determinamos en forma numrica las dimensiones del vector columna {B}.
2.- Z (1)=B (1).
3.- Para h=2, 3,4,, n

Realizar pasos 3 a 5.

4.- Z(h)=B(h)-sum(L(h,1:h-1).*Z(1:h-1)).
5.- Parar.
6.- Parar funcin.

Implementacin en Matlab para la sustitucin hacia adelante


para determinar el vector {Z}.

Byron Patricio Rodrguez Merchn.

Mtodos Numricos.

%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%

-----------------------------------------------------------------------Universidad de Cuenca.
Facultad de Ingeniera Escuela Civil.
Nombre: Byron Patricio Rodrguez Merchn.
Sustitucin hacia adelante.
De donde obtenemos el vector {Z} el cual nos ayudara a resolver el
sistema de ecuaciones lineales (S.E.L).
Datos de entrada:
[L]=Matriz triangular inferior.
{B}=Vector columna los diferentes valores derechos del
sistema de ecuaciones lineales.
Datos de salida:
{Z}=Vector columna que ayudara a resolver el sistema de
ecuaciones lineales (S.E.L).
-----------------------------------------------------------------------

function [Z]=susade(L,B)
disp('----------------------------------------------------------------')
disp('
Sustitucin hacia adelante
disp('
Universidad de Cuenca
disp('Realizado por: Byron Patricio Rodrguez Merchn')
disp('----------------------------------------------------------------')

')
')

% Determinamos el numero de filas del vectror columna {B}

Byron Patricio Rodrguez Merchn.

Mtodos Numricos.
n=length(B);
% Determinados el primer elemento del vector {Z}
Z(1)=B(1);
% Determinamos los elementos restantes del vector {Z}
for h=2:n
Z(h)=B(h)-sum(L(h,1:h-1).*Z(1:h-1));
end
end

Funcionamiento en Matlab para la sustitucin hacia adelante


para determinar el vector {Z}.

Byron Patricio Rodrguez Merchn.

Mtodos Numricos.

>> A
A=
2
1
3
-2
1

3
-2
2
2
2

-1
3
3
-3
-3

1
3
-2
2
2

2
-2
2
-3
2

>> [L,U]=LU(A)
----------------------------------------------------------------Factorizacin LU
Universidad de Cuenca
Realizado por: Byron Patricio Rodrguez Merchn
----------------------------------------------------------------L=
1.0000
0
0
0
0
0.5000 1.0000
0
0
0
1.5000 0.7143 1.0000
0
0
-1.0000 -1.4286 0.5000 1.0000
0
0.5000 -0.1429 -1.0000 -0.3721 1.0000
U=
2.0000 3.0000 -1.0000 1.0000 2.0000
0 -3.5000 3.5000 2.5000 -3.0000
0
0 2.0000 -5.2857 1.1429

Byron Patricio Rodrguez Merchn.

Mtodos Numricos.
0
0

0
0

0
0

9.2143 -5.8571
0 -0.4651

>> B
B=
3
1
-2
4
-2
>> [Z]=susade(L,B)
----------------------------------------------Sustitucin hacia adelante
Universidad de Cuenca
Realizado por: Byron Patricio Rodrguez Merchn
----------------------------------------------Z=
3.0000 -0.5000 -6.1429

9.3571 -6.2326

Anlisis por sustitucin hacia atrs para determinar la


solucin del sistema de ecuaciones lineales (S.E.L) {X}.
U * X Z
u11 u12 u13 u14 u15 x1 z1
0 u
u 23 u 24 u 25 x2 z 2
22


0
0 u33 u34 u35 * x3 z3

0
0 u 44 u 45 x4 z 4
0

0
0
0
0 u55 x5 z5
3
1
1
2
0 7/2 7/2
5/ 2

0
0
2
37 / 7

0
0

0
0

0
0

Byron Patricio Rodrguez Merchn.

x1
x
2

3
1 / 2

8 / 7 * x3 43 / 7

131 / 14
129 / 14 41 / 7 x 4

268 / 43
0
20 / 43 x5

Mtodos Numricos.
u55 * x5 z5

x5 z5 / u55

x5 ( 268 / 43) /( 20 / 43) 67 / 5


u 44 * x4 u 45 * x5 z4

x4 ( z 4 u45 * x5 ) /(u 44 )

x4 ((131 / 14) (( 41 / 7) * (67 / 5))) /(129 / 14) 143 / 15


u33 * x3 u34 * x4 u35 * x5 z3

x3 ( z3 u34 * x4 u35 * x5 ) /(u33 )

x3 (( 43 / 7) (( 37 / 7) * (143 / 15)) ((8 / 7) * (67 / 5))) /( 2) 217 / 15


u22 * x2 u23 * x3 u24 * x4 u25 * x5 z 2
x2 ( z 2 u23 * x3 u 24 * x4 u25 * x5 ) /(u 22 )

x 2 (( 1 / 2) ((7 / 2) * (217 / 15)) ((5 / 2) * (143 / 15)) (( 3) * (67 / 5))) /( 7 / 2) 149 / 15


u11 * x1 u12 * x2 u13 * x3 u14 * x4 u15 * x5 z1
x1 ( z1 u12 * x2 u13 * x3 u14 * x4 u15 * x5 ) /(u11 )

x1 ((3) ((3) * (149 / 15)) (( 1) * (217 / 15)) ((1) * (143 / 15)) (( 2) * (67 / 5))) /( 2) 122 / 5
3
1
1
2 122 / 5
3
2

0 7/2 7/2

5/ 2
3 149 / 15 1 / 2

0
0
2
37 / 7
8 / 7 * 217 / 15 43 / 7

0
0 129 / 14 41 / 7 143 / 15 131 / 14
0

0
0
0
0
20 / 43 67 / 5 268 / 43

Generalizacin de formulas.
Por lo tanto al generalizar la formula tenemos:

Determinando el ltimo elemento de la solucin.


X(n)=Z(n)/U(n,n).

Determinamos los dems elementos de la solucin.


Para o=(n-1),(n-2),(n-3),.,1.
Byron Patricio Rodrguez Merchn.

Mtodos Numricos.

Z (o )
X (o )

k n

U (o, k ) * X (k )

k i 1

U (i, i )

Algoritmo anlisis por sustitucin hacia atrs para determinar


la solucin del sistema de ecuaciones {X}.
Datos de entrada.

U
Z

Coeficientes de la matriz triangular superior.


Vector que proporcionara la solucin del sistema anterior.

Datos de salida.

Solucin del sistema de ecuaciones lineales.

Pasos.
1.- Determinamos en forma numrica las dimensiones de la matriz {Z}.
2.- X(n)= (Z(n)/U(n, n)).
3.- Para o=(n-1), (n-2), (n-3),,1

Realizar pasos 3 a 5.

4.- X(o)=(Z(o)-sum(U(o,o+1:n).*X(o+1:n)))/U(o,o).
5.- Parar.
6.- Parar funcin.

Implementacin en Matlab del anlisis por sustitucin hacia


atrs para determinar la solucin del sistema de ecuaciones {X}.

Byron Patricio Rodrguez Merchn.

Mtodos Numricos.

%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%

-----------------------------------------------------------------------Universidad de Cuenca.
Facultad de Ingenieria Escuela Civil.
Nombre: Byron Patricio Rodrguez Merchn.
Sustitucin hacia atras.
De donde obtenemos el vector solucin {X} del sistema de ecuaciones
lineales.
Datos de entrada:
[U]=Matriz triangular superior.
{Z}=Vector que ayuda a resolver el (S.E.L).
Datos de salida:
{X}=Vector solucin del sistema de ecuaciones lineales.
-----------------------------------------------------------------------

function [X]=sustatr(U,Z)
disp('----------------------------------------------------------------')
disp('
Sustitucin hacia atras
disp('
Universidad de Cuenca
disp('Realizado por: Byron Patricio Rodrguez Merchn')
disp('-----------------------------------------------------------------')

')
')

% Determinamos el numero de columnas del vector {Z}


n=length(Z);
% Determinamos el ultimo elemento del vector solucin del sistema
de
% ecuaciones lineales (S.E.L).
X(n)=(Z(n)/U(n,n));
% Determinamos los demas elementos del vector solucin del
sistema de
% ecuaciones lineales (S.E.L).

Byron Patricio Rodrguez Merchn.

Mtodos Numricos.
for o=(n-1):-1:1
X(o)=(Z(o)-sum(U(o,o+1:n).*X(o+1:n)))/U(o,o);
end
end

Prueba de funcionamiento para el anlisis por sustitucin


hacia atrs para determinar la solucin del sistema de
ecuaciones {X}.

>> A
A=
Byron Patricio Rodrguez Merchn.

Mtodos Numricos.

2
1
3
-2
1

3
-2
2
2
2

-1
3
3
-3
-3

1
3
-2
2
2

2
-2
2
-3
2

>> [L,U]=LU(A)
----------------------------------------------------------------Factorizacin LU
Universidad de Cuenca
Realizado por: Byron Patricio Rodrguez Merchn
-----------------------------------------------------------------

L=
1.0000
0
0
0
0
0.5000 1.0000
0
0
0
1.5000 0.7143 1.0000
0
0
-1.0000 -1.4286 0.5000 1.0000
0
0.5000 -0.1429 -1.0000 -0.3721 1.0000
U=
2.0000 3.0000 -1.0000 1.0000 2.0000
0 -3.5000 3.5000 2.5000 -3.0000
0
0 2.0000 -5.2857 1.1429
0
0
0
9.2143 -5.8571
0
0
0
0 -0.4651
>> B
B=
3
1
-2
4
-2
>> [Z]=susade(L,B)
----------------------------------------------------------------Sustitucin hacia adelante
Universidad de Cuenca
Realizado por: Byron Patricio Rodrguez Merchn
----------------------------------------------------------------Z=
3.0000 -0.5000 -6.1429

Byron Patricio Rodrguez Merchn.

9.3571 -6.2326

Mtodos Numricos.
>> [X]=sustatr(U,Z)
-----------------------------------------------------------------Sustitucin hacia atras
Universidad de Cuenca
Realizado por: Byron Patricio Rodrguez Merchn
-----------------------------------------------------------------X=
-24.3333

9.9333 14.4667

9.5333 13.4000

Programa Principal
El programa principal consiste en implementar las dems funciones que se realizaron
en un solo programa con el fin de que si se tuviera un error se puede modificar ya en
una funcin especfica y no se necesita modificar todas las caractersticas del
programa principal.

Algoritmo del programa principal.

Byron Patricio Rodrguez Merchn.

Mtodos Numricos.

Visualizamos las matrices triangulares inferiores [L] y la matriz triangular


superior [U], el vector intermedio {Z} y el vector solucin {X}

Implementacin en Matlab del programa principal

Byron Patricio Rodrguez Merchn.

Mtodos Numricos.

%
%
%
%
%
%
%
%
%
%

-----------------------------------------------------------------------Universidad de Cuenca.
Facultad de Ingeniera Escuela Civil.
Nombre: Byron Patricio Rodrguez Merchn.
Programa principal de la descomposicin LU
Coeficientes de la matriz [A].
Coeficiente derecho vector columna {B}
-----------------------------------------------------------------------

function [L,U,Z,X]=descomLU(A,B)
[L,U]=LU(A);
[Z]=susade(L,B);
Z=Z';
[X]=sustatr(U,Z);
X=X';
end

Prueba de funcionamiento del programa principal

Byron Patricio Rodrguez Merchn.

Mtodos Numricos.

>> A
A=
2
1
3
-2
1

3
-2
2
2
2

-1
3
3
-3
-3

1
3
-2
2
2

2
-2
2
-3
2

>> B
B=
3
1
-2
4
-2

>> [L,U,Z,X]=descomLU(A,B)
----------------------------------------------------------------Factorizacin LU
Universidad de Cuenca

Byron Patricio Rodrguez Merchn.

Mtodos Numricos.
Realizado por: Byron Patricio Rodrguez Merchn
--------------------------------------------------------------------------------------------------------------------------------Sustitucin hacia adelante
Universidad de Cuenca
Realizado por: Byron Patricio Rodrguez Merchn
--------------------------------------------------------------------------------------------------------------------------------Sustitucin hacia atras
Universidad de Cuenca
Realizado por: Byron Patricio Rodrguez Merchn
----------------------------------------------------------------L=
1.0000
0
0
0
0
0.5000 1.0000
0
0
0
1.5000 0.7143 1.0000
0
0
-1.0000 -1.4286 0.5000 1.0000
0
0.5000 -0.1429 -1.0000 -0.3721 1.0000
U=
2.0000 3.0000 -1.0000 1.0000 2.0000
0 -3.5000
3.5000 2.5000 -3.0000
0
0
2.0000 -5.2857 1.1429
0
0
0
9.2143 -5.8571
0
0
0
0 -0.4651
Z=
3.0000
-0.5000
-6.1429
9.3571
-6.2326
X=
-24.3333
9.9333
14.4667
9.5333
13.4000

Comprobando las respuestas con una de las funciones incorporadas en Matlab


tenemos:
>> X=A\B
X=

Byron Patricio Rodrguez Merchn.

Mtodos Numricos.
-24.3333
9.9333
14.4667
9.5333
13.4000

Otra forma de verificar con Matlab tenemos:


>> [L,U]=lu(A)
L=
0.6667 0.5000
0.3333 -0.8000
1.0000
0
-0.6667 1.0000
0.3333 0.4000
U=
3.0000 2.0000
0
3.3333
0
0
0
0
0
0

0.6944
0.0667 1.0000
-0.3333 1.0000
0
0
0
0
0
0
0
1.0000
0
0
3.0000 -2.0000
-1.0000 0.6667
-3.6000 2.4000
0 5.0000
0
0

2.0000
-1.6667
2.0000
-3.3333
0.3333

>> Z=L\B
Z=
-2.0000
2.6667
-2.4000
3.0000
4.4667
>> X=U\Z
X=
-24.3333
9.9333
14.4667
9.5333
13.4000

Tomando otro ejemplo un sistema de ecuaciones lineales (S.E.L) de 10 ecuaciones con


10 incgnitas.
>> A
A=
1

-3

-5

-1

Byron Patricio Rodrguez Merchn.

-3

Mtodos Numricos.
1
5
-2
4
6
-3
-2
1
5

-3
1
2
2
-6
2
2
-8
-5

5
5
4
3
-2
3
-4
6
4

4
2
1
1
-1
6
-3
2
-1

-2
-1
-2
1
1
-3
1
4
2

1
3
3
5
1
5
2
-3
-1

-4
4
2
4
1
2
1
-6
1

1
3
-1
5
2
-1
2
-5
-5

3
2
3
-5
-5
-4
2
3
1

-2
1
1
4
2
-5
4
7
4

>> B
B=
2
3
-5
4
1
-4
4
-4
2
-2
>> [L,U,Z,X]=descomLU(A,B)
L=
Columns 1 through 7
1.0000
0
0
0
0
0
0
1.0000 1.0000
0
0
0
0
0
5.0000 1.8000 1.0000
0
0
0
0
-2.0000 -1.2000 1.3571 1.0000
0
0
0
4.0000 1.2000 0.9643
0.0705 1.0000
0
0
6.0000 3.6000 -2.2857 -1.9786 -2.0977 1.0000
0
-3.0000 -1.6000 1.2143 1.1923 2.3560 -0.3029 1.0000
-2.0000 -1.2000 -0.0714 0.1111 -0.1815 0.3428 -0.5165
1.0000 2.0000 -1.2500 -0.7329 0.8674 -0.4544 1.3718
5.0000 3.0000 -0.8929 -1.1090 -1.4712 0.2785 0.4209

Columns 8 through 10
0
0
0
0
0
0
0
1.0000

0
0
0
0
0
0
0
0

Byron Patricio Rodrguez Merchn.

0
0
0
0
0
0
0
0

Mtodos Numricos.
-5.3059
1.0000
21.8531 -3.8842

0
1.0000

U=
Columns 1 through 7
1.0000 2.0000 -3.0000
4.0000 -5.0000 -1.0000
2.0000
0 -5.0000 8.0000
0 3.0000
2.0000 -6.0000
0
0 5.6000 -18.0000 18.6000
4.4000 4.8000
0
0
0 33.4286 -33.6429 -2.5714 -7.7143
0
0
0
0
1.8365 2.5385 -0.8846
0
0
0
0
0 10.0942
4.4520
0
0
0
0
0
0
5.2019
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
Columns 8 through 10
1.0000
0
-2.0000
3.7143
2.6667
4.3717
-4.9585
-0.1315
0
0

3.0000 -3.0000
0
1.0000
-13.0000 14.2000
26.6429 -23.0714
-6.3429
2.7340
-13.3037
8.9424
-0.0664
-5.8672
7.4866
-2.8224
42.5483
3.6061
0
82.7781

Z=
2.0000
1.0000
-16.8000
32.0000
5.7436
17.3647
-14.4260
-15.9178
-61.3073
124.8959
X=
-0.0121
1.1041
0.8266
-0.6677
-3.5217
-0.6485
-1.7102
-0.6492

Byron Patricio Rodrguez Merchn.

Mtodos Numricos.
-1.5688
1.5088

Comprobando con las funciones impuestas en Matlab.


>> X=A\B
X=
-0.0121
1.1041
0.8266
-0.6677
-3.5217
-0.6485
-1.7102
-0.6492
-1.5688
1.5088

Otra forma de verificar aplicando otras funciones en Matlab.


>> [L,U]=lu(A)
L=
Columns 1 through 7
0.1667 -0.4286
0.1667 0.2857
0.8333 -0.8571
-0.3333
0
0.6667 -0.8571
1.0000
0
-0.5000 0.1429
-0.3333
0
0.1667 1.0000
0.8333
0
Columns 8 through
0
0
0
0
0
0
0
0
-0.0856 0.0965
0
0
0
0
-0.0826 1.0000
0
0
1.0000
0

0.0039
0.2913
1.0000
0.2756
0.8071
0
0.0906
-0.3858
0
0.4685
10

1.0000
0.4296
0
-0.1233
-0.0516
0
0.9387
-0.3001
0
-0.4657
0
0
0
0

1.0000
0
0
0
0
0

U=
Columns 1 through 7

Byron Patricio Rodrguez Merchn.

0
0
0
0.8667
0.0270 1.0000
0
0
0
1.0000
0
0
-0.9052 0.5625 0.0624
0
0
0
-0.0536 1.0000
0
-0.3335 0.2838 0.0138
0
0
0
0.4626 -0.4941 -0.4228

Mtodos Numricos.
6.0000 -6.0000 -2.0000 -1.0000
0 -7.0000 6.3333 2.1667
0
0 12.0952 4.6905
0
0
0
5.0768
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
Columns 8 through 10
2.0000
-5.3333
-3.2381
-1.6063
0.3610
2.5824
3.4413
-3.3339
0
0

-5.0000
3.8333
9.4524
5.4390
-0.6010
-13.0415
-1.4794
-3.5198
8.8431
0

2.0000
6.6667
5.0476
-0.4961
0.2144
-4.9323
-5.5482
-5.1442
7.5879
6.4235

>> Z=L\B
Z=
-4.0000
2.6667
0.6190
3.8071
2.9655
-1.8519
-1.4315
-0.0757
-2.4240
9.6918
>> X=U\Z
X=
-0.0121
1.1041
0.8266
-0.6677
-3.5217
-0.6485
-1.7102
-0.6492
-1.5688
1.5088

Byron Patricio Rodrguez Merchn.

1.0000 1.0000 1.0000


3.8333 -3.1667 -6.1667
1.4524 -0.5476 -2.1190
-3.5295 -2.5217 -0.8012
-2.5021 3.1733 2.8185
0 8.5393 4.4761
0
0 -4.0070
0
0
0
0
0
0
0
0
0

Mtodos Numricos.
De donde obtenemos que el programa que soluciona un sistema de ecuaciones lineales
(S.E.L) para distintos trminos del lado derecho est bien programado ya que al
comprobar con las funciones que existen implementadas en matlab cumple o se
asemejan a las obtenidas con nuestro programa.
Se asemejan los resultados antes expuestos ya que en Matlab los resultados no son tan
exactos porque son aproximaciones ya que dentro del programa de Matlab existen
aproximaciones ya sea por truncamiento o por que se toman una menor cantidad de
decimales.

Ventajas y desventajas de la descomposicin LU


Como una de las ventajas de la descomposicin LU se da cuando hay que resolver
sistemas de ecuaciones lineales (S.E.L) [A]*{X}={B} para varios vectores {B} distintos
ya que las operaciones que se realizan en la matriz [A] no se relaciona con el vector de
trminos independientes.
Otra de las ventajas de la descomposicin LU, es que al realizar el clculo de la
inversa de una forma muy sencilla.
La matriz [L] y [U] tambin puede ser usadas para calcular el determinante de la
matriz [A] muy definidamente porque det(A)=det(L)*det(U) y determinante de matrices
triangulares son simplemente el producto de los elementos de sus diagonales.
En particular si [L] es una matriz triangular en cuya diagonal todos los elementos son
1, entonces.
det(A)=det(L)*det(U)=det(U)
Una desventaja se da cuando se trabaja en resolucin en sistema de ecuaciones
lineales [A]*{X}={B} ya que la fase de sustitucin que se necesita para resolver el
sistema mediante la descomposicin LU requiere mayor esfuerzo porque se realiza
sustitucin hacia adelante y hacia atrs.

Conclusiones
Luego de haber estudiado a profundidad los mtodos para resolver el sistema de
ecuaciones lineales (S.E.L), se concluye que para resolver estos sistemas de ecuaciones
lineales existen diferentes mtodos, pero depender del gusto de cada persona en elegir
uno en especfico. Puesto que al analizar cada mtodo tiene sus ventajas y desventajas.

Byron Patricio Rodrguez Merchn.

Mtodos Numricos.
Antes de programar cualquier mtodo se necesita saber cmo se desarrolla cada uno
de estos procesos para ser capaces de elegir un mtodo apropiado para diferentes
situaciones que se ven en la vida cotidiana.
Como podemos mencionar una diferencia notoria entre el mtodo de eliminacin de
gauss y el mtodo de descomposicin LU, es que el mtodo de eliminacin de Gauss
trabaja solo para un vector derecho, mientras que al trabajar por el mtodo de
descomposicin LU se trabaja para varios vectores del lado derecho, un ejemplo claro
de varios vectores del lado derecho es una estructura la cual soporta diferentes cargas.
Estos mtodos son ideales para programarlos en computadora, pues son iterativos y
muy largos de trabajar en papel lo cual podra resultar extremadamente largo y
tedioso. Por ello son mtodos ideales para trabajar en computadora.
Tambin podemos mencionar que el mtodo de descomposicin LU es ms eficaz que la
eliminacin de Gauss porque puede resolver las ecuaciones con los mismos coeficientes
de la matriz [A] pero para distintos trminos independientes {b}.
Se puede mencionar un hecho muy interesante es que la eliminacin de Gauss se puede
expresar como una descomposicin LU segn lo ledo en el libro antes mencionado.
Adems de todo debemos tomar en cuenta los errores que se tienen dentro de matlab
considerando que con los que se pueda realizar a mano ya que no se toman todos los
decimales o se produce truncamiento en los decimales.
Este mtodo se usa mucho en problemas de estructuras ya que para distintas cargas se
deseara saber cul es el vector solucin de las mismas columnas.
La descomposicin LU lo que hace es optimizar el tiempo y disminuir el trabajo que se
realizara si para todos los casos posibles de {B} con la misma Matriz [A],
realizaramos el proceso de Gauss.

Byron Patricio Rodrguez Merchn.

Вам также может понравиться