Sei sulla pagina 1di 69

Anlisis Numrico: Matrices y Mtodos directos de resolucin de SEL

______________________________________________________________________
1 Manuel Dez Minguito




































Matrices, aplicaciones lineales y mtodos directos de
resolucin de sistemas de ecuaciones lineales
Grupo de Dinmica de Flujos Ambientales
Universidad de Granada

Anlisis Numrico: Matrices y Mtodos directos de resolucin de SEL
______________________________________________________________________
2 Manuel Dez Minguito

ndice
ndice................................................................................................................................ 2
Lista de Figuras................................................................................................................ 3
Lista de Tablas.................................................................................................................. 3
Lista de Algoritmos.......................................................................................................... 4
Motivacin........................................................................................................................ 5
Fundamentos: Definiciones y propiedades de sistemas de ecuaciones lineales y matrices
.......................................................................................................................................... 9
Definicin: Sistema de ecuaciones lineales.............................................................. 9
Propiedades: SEL, operaciones elementales y matrices........................................... 9
Definiciones: Matriz y vector................................................................................. 11
Definicin: Igualdad entre matrices....................................................................... 11
Definicin: Dependencia e independencia lineal ................................................... 11
Definiciones: Tipos especiales de matrices............................................................ 11
Propiedades: Suma de matrices y producto externo por escalares......................... 12
Definicin: Matriz extendida.................................................................................. 13
Definicin: Producto (interno) de matrices............................................................ 13
Definicin: Matriz identidad.................................................................................. 14
Propiedades: Producto de matrices......................................................................... 14
Definicin: Matriz inversa...................................................................................... 14
Propiedades: Inversin de matrices........................................................................ 15
Definicin: Determinante de una matriz................................................................ 15
Definicin: Menor principal ................................................................................... 15
Propiedades: Determinantes................................................................................... 15
Definicin: Matriz traspuesta................................................................................. 16
Propiedades: Matrices traspuestas.......................................................................... 16
Definicin: Matriz ortogonal .................................................................................. 17
Teorema: Existencia y unicidad de soluciones....................................................... 17
Definicin: Producto escalar entre vectores........................................................... 17
Propiedades: Producto escalar entre vectores......................................................... 18
Definicin: Matriz definida positiva...................................................................... 18
Definicin: Matriz diagonalmente dominante........................................................ 18
Definicin: Rango de una matriz............................................................................ 18
Definicin: Normas vectoriales.............................................................................. 19
Teorema: Relacin entre la norma eucldea y la norma infinito............................ 19
Definicin: Distancia entre dos vectores................................................................ 19
Definicin: Convergencia....................................................................................... 20
Definicin: Norma matricial................................................................................... 20
Definicin: Norma subordinada y normal natural.................................................. 20
Definicin: Condicionamiento de matrices............................................................ 21
Definicin: Autovalores y autovectores................................................................. 21
Propiedades: Autovalores y autovectores............................................................... 21
Definicin: Polinomio caracterstico...................................................................... 22
Definicin: Multiplicidad algebraica y geomtrica................................................ 22
Propiedades: Polinomio caracterstico................................................................... 22
Definicin: Matriz diagonalizable.......................................................................... 22
Propiedades: Matrices diagonalizables................................................................... 23
Definicin: Radio espectral de una matriz............................................................. 23
Anlisis Numrico: Matrices y Mtodos directos de resolucin de SEL
______________________________________________________________________
3 Manuel Dez Minguito
Teorema: Relacin entre radio espectral y norma de una matriz........................... 23
Definicin: Matriz convergente.............................................................................. 23
Propiedades: Matrices convergentes...................................................................... 24
Equation Chapter 1 Section 1Sistemas sencillos de resolver......................................... 25
Matriz diagonal........................................................................................................... 25
Matriz triangular inferior............................................................................................ 26
Matriz triangular superior........................................................................................... 27
Matrices reducibles a triangulares mediante permutaciones de filas......................... 27
Solucin de SELs por eliminacin................................................................................. 29
Mtodo de Gauss con sustitucin hacia atrs............................................................. 29
Limitaciones........................................................................................................... 33
Orden del algoritmo................................................................................................ 38
Mtodo de Gauss con sustitucin hacia delante......................................................... 39
Mtodo de Gauss-J ordan............................................................................................ 39
Limitaciones........................................................................................................... 39
Orden del algoritmo................................................................................................ 40
Otros mtodos............................................................................................................. 40
Mtodo hbrido....................................................................................................... 40
Mtodos de Givens (o de las rotaciones) y Householder....................................... 41
Mtodo de Cramer y de la matriz inversa............................................................... 41
Mtodos a medida................................................................................................... 42
Estrategias de pivotaje.................................................................................................... 43
Pivotaje mximo en la columna o pivotaje parcial..................................................... 44
Limitaciones........................................................................................................... 48
Pivotaje de columna escalada..................................................................................... 49
Orden del algoritmo................................................................................................ 53
Factorizacin de Matrices............................................................................................... 54
Teorema: Descomposicin LU (i)........................................................................ 56
Teorema: Descomposicin LU (ii)....................................................................... 56
Teorema: Factorizacin de Choleski ...................................................................... 56
Corolario: Factorizacin y matrices diagonalmente dominantes........................... 56
Mtodo de Doolittle.................................................................................................... 57
Mtodo de Crout......................................................................................................... 60
Mtodo de Choleski.................................................................................................... 63
Ejercicios................................................................................................................ 66
Eleccin de un mtodo para resolver SELs.................................................................... 66
Bibliografa..................................................................................................................... 69
Lista de Figuras
Figura 1. Circuito elctrico cuya resolucin mediante las leyes de Kirchoff da lugar a un
sistema de ecuaciones lineales.......................................................................................... 5
Figura 2. Placa y distribucin de temperaturas................................................................. 6

Lista de Tablas
Tabla 1. rdenes de los algoritmos. ............................................................................... 67


Anlisis Numrico: Matrices y Mtodos directos de resolucin de SEL
______________________________________________________________________
4 Manuel Dez Minguito
Lista de Algoritmos
Algoritmo 1. Matriz diagonal ......................................................................................... 26
Algoritmo 2. Mtodo de sustitucin hacia delante......................................................... 26
Algoritmo 3. Mtodo de sustitucin hacia atrs............................................................. 27
Algoritmo 4. Mtodo de Gauss con sustitucin hacia atrs.......................................... 32
Algoritmo 5. Mtodo de Gauss con sustitucin hacia atrs y bsqueda de pivote......... 38
Algoritmo 6. Mtodo de Gauss-J ordan con bsqueda de pivote................................... 40
Algoritmo 7. Mtodo de Gauss con sustitucin hacia atrs y bsqueda de pivote
mximo en la columna.................................................................................................... 48
Algoritmo 8. Mtodo de Gauss con sustitucin hacia atrs y bsqueda pivote de
columna escalada............................................................................................................ 53
Algoritmo 9. Factorizacin LU por el mtodo de Doolittle......................................... 60
Algoritmo 10. Factorizacin LU segn el mtodo de Crout....................................... 63
Algoritmo 11. Factorizacin LU segn el mtodo de Choleski .................................. 66
Anlisis Numrico: Matrices y Mtodos directos de resolucin de SEL
______________________________________________________________________
5 Manuel Dez Minguito
Motivacin
Qu es un sistema de ecuaciones lineales y por qu necesitamos resolverlo?

En primer lugar advertiremos que los sistemas de ecuaciones lineales aparecen por
doquier en las ciencias experimentales, tcnicas e ingeniera. Muchos de los problemas
que aparecen en estas disciplinas pueden reducirse a resolver sistemas de ecuaciones
lineales (SEL). Entre los problemas que as pueden ser tratados estn la solucin de
ecuaciones diferenciales en derivadas parciales resueltas mediante diferencias finitas,
problemas geomtricos en matemticas, la solucin de sistemas de ecuaciones
diferenciales, problemas de valores propios en fsica matemtica, el ajuste por mnimos
cuadrados y la aproximacin de funciones por polinomios.

Algunos ejemplos sencillos de sistemas cuyas leyes fsicas dan lugar a SEL se muestran
a continuacin.

Ejemplo 1: El primer ejemplo se trata de un caso tpico de teora de circuitos. Para
conocer las cadas de tensin y la intensidad de corriente entre todos y cada uno de los
nodos, uno requiere echar mano de las leyes de Kirchoff. Estas esencialmente
establecen la conservacin de la energa: nos dicen que el flujo de corriente debe
conservarse en cada nodo, esto es, que la suma de intensidades que entran y salen de
cada nodo debe ser nula.



Figura 1. Circuito elctrico cuya resolucin mediante las leyes de Kirchoff da lugar a un sistema de
ecuaciones lineales.

Teniendo stas en cuenta, suponiendo sentidos para las corrientes entre cada dos nodos
y calculando con cuidado, se llega al SEL (1.1), cuya solucin debe ser nica. En
ausencia de otras condiciones, los valores de las resistencias
i
R , 1 8 i y de la
fuente de alimentacin
0
V pueden suponerse conocidos determinando unvocamente
todos los coeficientes del sistema.
Anlisis Numrico: Matrices y Mtodos directos de resolucin de SEL
______________________________________________________________________
6 Manuel Dez Minguito

{ } { } { } { } { }
( )
{ }
( )
{ }
0
1,2,4,8 1,2,8 1,2,4 1,4,8 2,4,8
6 4
4,6
5,6 5
3
0
B k C k D k E k k
k k k k k
B C k D
k
B k C k
k k
V R V R V R V R V R
V R V R V R
V R V R
= = = = =
=
= =



=








+ =

{ } { } { }
{ } { } { } { }
,8 5,6,8 6,8
0
3,5,7 2,3,7 2,3,5,7 2,3,5
2 0
3
D k E k
k k
B k D k E k k
k k k k
V R V R
V R V R V R V R
= =
= = = =



+ =








+ =







(1.1)

Ejemplo 2: Este ejemplo ha sido tomado de [Gerald y Wheatley, 2000] y se corresponde
con el problema de determinacin del mapa de temperaturas en una placa metlica
bidimensional de dimensiones 2 2 m m . Los bordes, como se indica en la Figura 2, se
hallan a temperatura constante (imagnese en contacto con un termostato a la
temperatura indicada). Se pretende determinar las temperaturas en el interior de la placa,
discretizando su interior en 9 nodos, denominados
i
u (Figura 2). Las temperaturas en
los nodos vienen dadas por la ecuacin de difusin, y que en equilibrio se reduce a la
ecuacin de Laplace. Aplicada a este sistema y debidamente discretizada mediante
diferencias finitas da lugar al SEL (1.2). En la prctica, la temperatura
i
u es
simplemente el resultado de considerar el promedio aritmtico de las temperaturas de
los 4 nodos circundantes. De nuevo, es sistema tiene solucin nica en equilibrio.



Figura 2. Placa y distribucin de temperaturas.



Anlisis Numrico: Matrices y Mtodos directos de resolucin de SEL
______________________________________________________________________
7 Manuel Dez Minguito

1 2 4
1 2 3 5
2 3 6
1 4 5 7
2 4 5 6 8
3 5 6 9
4 7 8
5 7 8
6 8 9
4 50
4 50
4 150
4 0
4 0
4 100
4 50
4 50
4 150
u u u
u u u u
u u u
u u u u
u u u u u
u u u u
u u u
u u u
u u u
+ + =
+ + =
+ =
+ + =
+ + + =
+ + =
+ =
+ =
+ =
(1.2)




Ejemplo 3: Otro ejemplo proviene de Qumica. Se mezcla bajo condiciones controladas
7 8
C H tolueno, cido ntrico
3
HNO para producir trinitrotolueno
7 5 6 3
C H O N y agua
2
H O


7 8 3 7 5 6 3 2
x C H y HNO z C H O N w H O + + (1.3)

En qu proporcin deben ser mezclados los componentes? El nmero de tomos
presentes antes de la reaccin debe coincidir con el nmero despus de la misma. Por
tanto,



7 7 0
8 5 2 0
3 0
3 6 0
x z
x y z w
y z
y z w
=
+ =
=
=
(1.4)


Ejemplo 4: En [Ruiz] hay otro ejemplo aplicado a salinidad en estuarios.


En este captulo nos proponemos resolver numricamente este tipo de sistemas de
ecuaciones. Para ello emplearemos los llamados mtodos directos. Se denominan
mtodos directos de resolucin de SELs a aquellos que emplean operaciones
elementales en el SELs para obtener otro equivalente ms sencillo con la misma
solucin [O'connor, 1993].

En el apartado siguiente se establece de forma rigurosa el problema, proporcionando las
definiciones, propiedades y teoremas necesarios para tratar con los mtodos numricos.
El lector que tenga unos conocimientos bsicos de SEL y que tenga soltura con el
lgebra de matrices puede pasar la seccin posterior.

Anlisis Numrico: Matrices y Mtodos directos de resolucin de SEL
______________________________________________________________________
8 Manuel Dez Minguito
El esquema a seguir ser el siguiente. Daremos un repaso sucinto a los fundamentos
bsicos del lgebra matricial y de aplicaciones lineales, haciendo especial nfasis en las
propiedades que nos sern tiles a la hora de tratar con los mtodos numricos.
Presentaremos los sistemas ms sencillos posibles y el algoritmo requerido para su
solucin. El objeto general de los mtodos numricos para resolver SEL es reducir
cualquier sistema a aqullos ms sencillos. Seguidamente, describiremos los algoritmos
de los mtodos ms populares. Finalmente, se har un breve comentario sobre el orden
de los algoritmos empleados y su idoneidad a la hora de ser implementados en un
computador.

Anlisis Numrico: Matrices y Mtodos directos de resolucin de SEL
______________________________________________________________________
9 Manuel Dez Minguito
Fundamentos: Definiciones y propiedades de sistemas
de ecuaciones lineales y matrices

Definicin: Sistema de ecuaciones lineales
Un sistema de n ecuaciones lineales (cada una definida como
i
E , con 1 i n ) con
m incgnitas tiene la forma general siguiente

11 1 12 2 1 1
21 1 22 2 2 2
1 1 2 2
,
m m
m m
n n nm m n
a x a x a x b
a x a x a x b
a x a x a x b
+ + + =

+ + + =

+ + + =

(1.5)
donde ,
ij i
a b R son nmero reales dados con 1 i n y 1 j m , , m n N. El
problema que se plantea es determinar la n -upla ( )
1
, ,
n
m
x x R de tal forma que el
conjunto de ecuaciones (1.5) se satisfaga. Diremos adems que obtener el vector
( )
1
, ,
m
x x en funcin de los coeficientes
ij
a y
i
b es resolver el sistema.

En general, los sistemas podemos clasificarlos segn la solucin. As, diremos que un
sistema es incompatible cuando no tenga solucin y compatible cuando tenga, al menos,
una solucin. Si un sistema es compatible, ser determinado si presenta una nica
solucin e indeterminado cuando presente infinitas soluciones.



Propiedades: SEL, operaciones elementales y matrices

Basados en la linealidad de las ecuaciones es fcil comprobar que si un SEL se
transforma en otro por efecto de alguna o varias de las operaciones siguientes:
1. Intercambiar una ecuacin por otra (
i j
E E ).
2. Multiplicar la ecuacin completa por un factor 0 c , real
i i
cE E
3. Reemplazar una ecuacin por la suma de ella y mltiplos de otra u otras, esto es,
por una combinacin de lineal de la dada y otras (
i i k k
k
E E c E +

,
k
c R).

Los dos sistemas, el original y el transformado, presentan la misma solucin, esto es, el
vector ( )
1
, ,
m
x x es la solucin de ambos sistemas. Diremos, por tanto, que ambos
sistemas son equivalentes. A las operaciones anteriores nos referiremos como
operaciones elementales.
Un caso especialmente sencillo de SEL es el llamado homogneo, que verifica
0,
i
b i = . Los sistemas homogneos presentan, al menos, la solucin trivial, esta es,
Anlisis Numrico: Matrices y Mtodos directos de resolucin de SEL
______________________________________________________________________
10 Manuel Dez Minguito
0,
i
x i = . En el ejemplo (1.4), el caso de la reaccin qumica, est gobernado por un
SEL homogneo.

Existen algoritmos eficientes, que mostraremos en las siguientes secciones, para el
clculo de la solucin de una SEL dada. Pero previamente, es recomendable plantear el
problema (1.5) desde otro punto de vista: el punto de vista matricial. Haciendo uso de
notacin matricial y vectorial el problema de resolver un SEL se facilita enormemente,
en virtud de la relacin, matemticamente bien definida, entre matrices y aplicaciones
lineales. Queda fuera del objetivo de estas notas presentar un estudio completo de esta
relacin, por lo que remitimos al lector a otros trabajos ms especializados [Lang,
1987]. No obstante, diremos que si ( , )
m n
A
f Hom
R
R R es una aplicacin lineal
(homomorfismo) de
m
R en
n
R existe una nica matriz ( )
n m
A M

R , la matriz
asociada a la aplicacin lineal
A
f , tal que
( )
1
1
: , , , ,
m n
A A m
m
x
f f x x A
x







R R . (1.6)
siendo

11 1
1
.
m
n nm
a a
A
a a


. .

(1.7)
As se establece una relacin unvoca entre matrices y aplicaciones lineales, esto es, un
isomorfismo entre el espacio vectorial de matrices n m con coeficientes reales
( )
n m
M

R y el de las aplicaciones lineales ( ) ,
m n
Hom
R
R R , pudiendo estudiar el
problema (1.5) en ambos espacios vectoriales con idnticos resultados. Por ejemplo, la
composicin (no conmutativa, en general) de aplicaciones lineales se puede ver como
producto de matrices, y la transpuesta de una matriz tiene su contrapartida en la
aplicacin lineal transpuesta.
A partir de (1.6) es fcil comprobar que, en efecto,
A
f es lineal, puesto que verifica
( ) ( ) ( )
A A A
f f f + = + x y x y (1.8)
habiendo hecho uso del propiedades elementales de suma y producto externo de
matrices, que definiremos un poco ms adelante en esta misma seccin.

De este modo, recurriendo a operaciones elementales del lgebra de matrices, que
definiremos algo ms adelante, es fcil ver que el SELs (1.5) se reduce a
A x b = (1.9)
donde A est dado por (1.7) y

1 1
m n
y .
m
n
x b
x b
x
b









= =











. R . R (1.10)
Por otro lado, el uso de matrices es imperativo cuando se trata de implementar
algoritmos de resolucin de SEL en una computadora, puesto que sta no entiende de
SEL o aplicaciones lineales, sino de matrices, vectores y operaciones entre ellos.

Anlisis Numrico: Matrices y Mtodos directos de resolucin de SEL
______________________________________________________________________
11 Manuel Dez Minguito
Por ello, damos a continuacin una lista de definiciones y propiedades (no demostradas)
bsicas de vectores y matrices, principalmente, que emplearemos en las secciones
siguientes [Burden y Faires, 1985; Conte y Boor, 1980; Kincaid y Cheney, 1990; Lang,
1987].

Definiciones: Matriz y vector
Una matriz A es una coleccin de elementos ordenados en filas y columnas. Diremos
que A es de orden n m si tiene n filas y m columnas, y real si tiene coeficientes
reales. En tal caso, A es un elemento del espacio vectorial de matrices ( )
n m
M

R , es
decir, ( )
n m
A M

R . Se denota de forma explcita,

11 1
1
m
n nm
a a
A
a a


. .

(1.11)
o en forma reducida
( )
ij
n m
A a

= . Siguiendo la misma notacin, definimos como


vector columna n -dimensional a cualquier matriz
1
( )
n
A M

R

11
1 n
a
A
a







. (1.12)
y como vector fila m -dimensional a cualquier matriz
1
( )
m
A M

R

( ) 11 1
.
m
A a a = (1.13)

Definicin: Igualdad entre matrices
Dos matrices ( )
n m
A M

R y ( )
p q
B M

R son iguales si son del mismo orden
(n p = y m q = ) y son idnticas elemento a elemento
ij ij
a b = , , i j .

Definicin: Dependencia e independencia lineal
Se dice que un conjunto de elementos ( )
1
, ,
m
x x V , donde V es un espacio vectorial
arbitrario, son linealmente independientes si ninguno puede ser escrito como
combinacin lineal del resto, esto es, si

1 1
0
m m
x x + + = (1.14)
slo existe la solucin trivial
1
0
m
= = = . Por el contrario, se dice que son
linealmente dependientes si
1
, ,
m
no todos nulos tal que se verifica (1.14).

Definiciones: Tipos especiales de matrices
Admitiendo ( )
n n
A M

R una matriz cuadrada se define matriz triangular (o reducida)
superior a aquella en la que los elementos por debajo de la diagonal principal son todos
nulos, es decir, 0
ij
a = para cada 1, 2, , i j j n = + + . Por ejemplo, la siguiente
matriz es una matriz triangular superior
Anlisis Numrico: Matrices y Mtodos directos de resolucin de SEL
______________________________________________________________________
12 Manuel Dez Minguito

11 12 1
1
0
0 0
n
n n
nn
a a a
A
a
a

.
.

(1.15)

De forma anloga se define matriz triangular inferior aquella en la que 0
ij
a = para
cada 1, 2, , i j j n = + + :

11
21
1 1
0 0
0
n n n nn
a
a
A
a a a

.
.

(1.16)
Una matriz triangular inferior y superior a la vez tiene la forma explcita

11
0 0
0
0
0 0
nn
a
A
a


.
.

, (1.17)
denominndose matriz diagonal.
Otro tipo de matrices que aparecen en ciertas aplicaciones son las matrices
tridiagonales. Como su propio nombre indica, son matrices
( )
ij
n n
A a

= en las que
0
ij
a = para todas las parejas , i j que verifiquen 1 i j > , esto es, en la i -sima fila,
slo los
ii
a ,
1 ii
a

y
1 ii
a
+
son distintos de cero. De forma explcita:

11 12
21 22
1 1 1
1
0 0
0 0
.
0 0
n n n n
nn nn
a a
a a
A
a a
a a

.

.

(1.18)


Generalizando el concepto de matriz triagonal se definen las matrices en banda, en las
que existen enteros 1 , p q n tales que 0
ij
a = siempre y cuando i p j + y/o
j q i + . La matriz asociada al segundo ejemplo dado en la motivacin, el (1.2), es
una matriz en banda.


Propiedades: Suma de matrices y producto externo por escalares
Las siguientes propiedades de las matrices son heredadas de las propiedades del espacio
vectorial. Sean , , ( )
n m
A B C M

R matrices y , R , entonces se verifica que

( )
.
ij
n m
A a

= (1.19)
Anlisis Numrico: Matrices y Mtodos directos de resolucin de SEL
______________________________________________________________________
13 Manuel Dez Minguito
La suma de matrices se realiza sumando los coeficientes en posiciones coincidentes,
esto es

( )
.
ij ij
n m
A B a b

+ = + (1.20)
Ntese que necesariamente ambas matrices deben tener el mismo orden. Adems se
tiene que

1. A B B A + = + , suma conmutativa
2. ( ) ( ) A B C A B C + + = + + , suma asociativa
3. 0 0 A A + = +

, elemento neutro para la suma: ( ) 0 0
n m
=


4. ( ) ( ) 0 A A A A + = + =

, elemento inverso para la suma


5. ( ) A B A B + = + , propiedad distributiva para el producto externo
(conmutativo)
6. ( )A A A + = +
7. ( ) ( ) A A =
8. 1A A = , elemento neutro para el producto externo

Definicin: Matriz extendida
Dado un SEL como (1.24), la matriz extendida o ampliada asociada a este SEL es la
formada por la matriz de la aplicacin lineal A yuxtapuesta al vector de coeficientes
independientes b , ambos dados en (1.26). El resultado es una matriz
( )
1
| ( )
n m
A M
+
R b . De forma explcita
( )
11 1 1
1
| .
m
n nm
n
a a b
A
a a
b

. . .

b (1.21)
Esta definicin resultar til a la hora de resolver computacionalmente SEL.

Definicin: Producto (interno) de matrices
El producto de matrices tiene su anlogo en la composicin de aplicaciones lineales y se
define como sigue. Sea ( )
n m
A M

R y ( )
m q
B M

R entonces definimos el producto
de matrices C A B = en funcin de las entradas
ij
c de C como

1
m
ij ik kj
k
c a b
=
=

(1.22)
para cada 1 i n y cada 1 j p . Ntese que el nmero de filas de A debe
coincidir con el nmero de columnas de B de tal forma que la matriz resultante sea
( )
n p
C M

R . El clculo de los coeficientes
ij
c de la nueva matriz se puede ver como
la multiplicacin de la i -sima fila de A con las correspondientes entradas de la j -
sima columna deB , seguidos por una suma. Por ejemplo,

2 1 1 3 2 1 1
3 1 2 1 1 20 15 .
0 2 3 6 4 16 14
C A B










= = =








(1.23)
Anlisis Numrico: Matrices y Mtodos directos de resolucin de SEL
______________________________________________________________________
14 Manuel Dez Minguito
El producto de matrices no es conmutativo, en general. En el ejemplo (1.23), el
producto B A no puede realizarse, puesto que el nmero de columnas de B no
coincide con el de filas de A. Pero an en el caso de que coincidieran, como en
matrices cuadradas, la igualdad A B B A = no est garantizada.

A partir de esta definicin se entiende con claridad que el SEL (1.5)

11 1 12 2 1 1
21 1 22 2 2 2
1 1 2 2
,
m m
m m
n n nm m n
a x a x a x b
a x a x a x b
a x a x a x b
+ + + =

+ + + =

+ + + =

(1.24)
pueda escribirse como
A x b = (1.25)
donde

11 1 1 1
1
, y ,
m
n nm n
n
a a x b
A x b
a a x
b









= = =











. . . .

(1.26)
siendo ( )
n m
A M

R y
1
, ( )
n
x b M

R .

Definicin: Matriz identidad
La matriz identidad es una matriz cuadrada de orden n , y se denota
n
I , en la que los
nicos elementos distintos de cero son los de la diagonal principal, que valen 1. De
forma reducida se expresa de la siguiente forma
( )
n ij
n
I = , siendo
ij


1 si
0 si
ij
i j
i j

(1.27)
la delta de Kroneker.

Propiedades: Producto de matrices
Sea ( )
n m
A M

R , , ( )
m p
B C M

R , ( )
p q
D M

R y R, entonces se verifica
1. ( ) ( ) A BD AB D = , asociativa para el producto interno
2. ( ) A B C AB AC + = + , distributiva para el producto interno
3.
n p
I B B I = , elemento neutro para el producto
4. ( ) ( ) AB A B =


Definicin: Matriz inversa
La divisin de matrices no est definida, en general. Sin embargo, para matrices
cuadradas puede definirse un concepto anlogo: producto por la matriz inversa. Diremos
que una matriz cuadrada ( )
n n
A M

R es invertible o no singular si ( )
n n
B M

R
tal que
Anlisis Numrico: Matrices y Mtodos directos de resolucin de SEL
______________________________________________________________________
15 Manuel Dez Minguito

n
A B B A I = = (1.28)
A la matriz B se la denomina matriz inversa de A y se denota
1
A

. Adems, si existe,
es nica. Una matriz no invertible es singular.

Propiedades: Inversin de matrices
Sean , ( )
n m
A B M

R y R. Se verifica
1.
1 1
n
AA A A I

= =
2.
( )
1
1
A A

=
3. ( )
1
1 1 1 1
AB B A A B


=

Definicin: Determinante de una matriz
Un concepto especialmente til en lgebra lineal es el de determinante. Se define
determinante de una matriz ( )
n n
A M

R por induccin. Para 1 n = ,
11
det( ) A a = ;
para 1 n >

1 1
det( )
n n
ij ij ij ij
j i
A a A a A
= =
= =

(1.29)
para cualquier 1 i n fijo o cualquier 1 j n fijo, donde ( ) 1
i j
ij ij
A M
+
= son
los cofactores asociados a los menores
ij
M que su vez son los determinantes de la
submatriz ( 1) ( 1) n n obtenida de eliminar la fila i -sima y la columna j -sima.
Ntese que det( ) A R, es decir, det( ) : ( )
n n
A M

R R . Es comn denotar tambin
del determinante de A por A . La expresin general para determinantes de matrices de
orden 2 es

11 12
11 22 12 21
21 22
,
a a
a a a a
a a
= (1.30)
y para orden 3 (tomando 1 i = )

11 12 13
21 22 21 23 22 22
21 22 23 13 12 11
31 32 31 33 32 32
31 32 33
.
a a a
a a a a a a
a a a a a a
a a a a a a
a a a
= + + (1.31)

Definicin: Menor principal
Se define el k -simo menor principal de la matriz ( )
n n
A M

R como

11 1
1
, .
k
k
k kk
a a
A k n
a a


. .

(1.32)

Propiedades: Determinantes
Sea , ( )
n n
A B M

R y R, definiendo ahora
i
E como la fila (ecuacin) o la
columna i (indistintamente) de una matriz dada, se tienen las siguientes propiedades.
Anlisis Numrico: Matrices y Mtodos directos de resolucin de SEL
______________________________________________________________________
16 Manuel Dez Minguito
1. Si una columna o fila de A tiene todos sus elementos nulos, det( ) 0 A =
2. Al intercambiar una fila (columna)
i
E por otra
' i i
E

, el determinante de la
matriz modificada ' A es det( ') det( ) A A =
3. Si A tiene dos o ms filas o columnas iguales
' i i i
E E

= , det( ) 0 A =
4. Al multiplicar una fila o columna
i
E por un escalar , el determinante de la
matriz resultante es det( ') det( ) A A =
5. det( ) det( ) det( ) AB A B =
6. Si una fila o columna
i
E es combinacin lineal del resto de filas o columnas
(
1
p n
i k k
k
k i
E E

), det( ) 0 A =
7. Si ' A es obtenida de A mediante la operacin
1
p n
i k k i
k
E E E

=
+

,
det( ') det( ) A A =



Definicin: Matriz traspuesta
Dada una matriz
( )
ij
n m
A a

= , se denota la matriz traspuesta como


T
A y se define como
( )
T
ji
m n
A a

= . Por ejemplo,

( )
11
11 1
1
.
T
n
n
a
a a
a







. (1.33)
Se verifica adems que ( )
T
T
A A = . La matriz que tiene la propiedad de
T
A A = , a
saber,
( ) ( )
ij ji
n m m n
a a

= se la denomina matriz simtrica, mientras que si
( ) ( )
ij ji
n m m n
a a

= ser una matriz antisimtrica. Slo las matrices cuadradas pueden
ser simtricas o antisimtricas.


Propiedades: Matrices traspuestas
Sean , ( )
n n
A B M

R , entonces se verifica
1. det( ) det( )
T
A A =
2. ( )
T
T T
A B A B + = +
3. ( )
T
T T
AB B A =
4.
( )
T
T
A A =
5. Si A es invertible ( ) ( )
1
1
T
T
A A

=


Anlisis Numrico: Matrices y Mtodos directos de resolucin de SEL
______________________________________________________________________
17 Manuel Dez Minguito
Definicin: Matriz ortogonal
Se dice que una matriz ( )
n n
A M

R es ortogonal cuando verifica
T T
n
A A A A I = = . Es comn que trasformaciones dadas por estas matrices
representen rotaciones.

Teorema: Existencia y unicidad de soluciones
En secciones posteriores trataremos exclusivamente con matrices cuadradas con
coeficiente reales. Esta restriccin se justifica mostrando que un SEL como (1.24) no
puede tener exactamente una sola solucin para cada
1
( )
n
M

R b a menos que la
matriz de coeficientes ( )
n n
A M

R sea cuadrada [Conte y Boor, 1980]. A partir de
ahora, y por ahorrar notacin, denotaremos al espacio vectorial de matrices cuadradas
con coeficientes reales del modo siguiente ( ) ( )
n n n
M M

R R .
El teorema se establece de la forma siguiente:

El SEL (1.25) tiene como mucho una solucin (i.e. la solucin, si existe, es nica) si y
slo si el correspondiente sistema homogneo presenta slo la solucin trivial, esta es,
0,
i
x i = . Es ms, no se puede obtener una solucin nica a no ser que nuestro SEL
tenga tantas ecuaciones como incgnitas.

En efecto, cualquier SEL homogneo como menos ecuaciones que incgnitas presenta
soluciones no triviales. Adems, si ( )
n
A M R y
1
, ( )
n
x b M

R se tiene que los
siguientes puntos son equivalentes (prstese especial atencin a los 4 primeros puntos)
1. El sistema homogneo A x =0 asociado a A x b = tiene slo la solucin
trivial x =0
2. b , A x b = tiene una nica solucin
3. A es invertible, esto es, no singular
4. El determinante de A es no nulo: det( ) 0 A
5. Los vectores columna que forman A son una base de
n
R
6. Los vectores fila que forman A son una base de
n
R
7. 0 no es un autovalor de A


Remitimos al lector a las siguientes referencias para profundizar en los conceptos de
autovalores y bases: [Kincaid y Cheney, 1990; Lang, 1987]. Por lo que a estas notas
respecta, nos ser suficiente con los cuatro primeros puntos.


Definicin: Producto escalar entre vectores
Sean los vectores ,
n
x y R . Se define su producto escalar como

1
, .
n
T
i i
i
x y x y x y
=
= =

(1.34)
Recurdese que los vectores estn definidos como vectores columnas, por lo que se hace
necesario, para que tenga sentido el producto
T
x y , trasponer el vector x .

Anlisis Numrico: Matrices y Mtodos directos de resolucin de SEL
______________________________________________________________________
18 Manuel Dez Minguito
Propiedades: Producto escalar entre vectores
Sean los vectores ,
n
x y R , la matriz ( )
n n
A M

R y el escalar R, entonces se
tienen las siguientes propiedades relativas al producto escalar de vectores:
1. , , x y y x = .
2. , , , x y x y = .
3. , , , x y z x z y z + = + .
4. , ,
T
x Ay A x y = .

Adems, diremos que dos vectores ,
n
x y R son ortogonales si y solo si , 0 x y = .


Definicin: Matriz definida positiva
Un concepto importante es el de matriz definida positiva. Se dice que una matriz
( )
n
A M R es definida positiva si

1
0, ( ).
T
n
x Ax x M

> R (1.35)


Definicin: Matriz diagonalmente dominante
Como veremos en la seccin siguiente, otras matrices especiales permiten reducir el
nmero de operaciones a la hora de resolver SEL. Una clase de estas matrices son las
llamadas matrices diagonalmente dominantes. Esta propiedad, para una
matriz ( )
n
A M R , puede expresarse por la desigualdad

1
(1 ).
n
ii ij
j
j i
a a i n
=

>

(1.36)
Por ejemplo, la matriz siguiente es diagonalmente dominante

5 2 1
1 3 1 .
2 1 4
A








(1.37)
Es importante notar que la desigualdad en (1.36) es estricta. Eso es importante a la hora
de demostrar que matrices diagonalmente dominantes pueden descomponerse en el
producto de dos matrices triangulares inferior y superior.

Definicin: Rango de una matriz
Definimos el rango de una matriz ( )
n
A M R como el nmero de filas (o columnas, al
ser cuadrada) linealmente independientes.


Anlisis Numrico: Matrices y Mtodos directos de resolucin de SEL
______________________________________________________________________
19 Manuel Dez Minguito
Definicin: Normas vectoriales
El espacio
n
R es un espacio normado con la aplicacin :
n
i con las siguientes
propiedades
1. 0,
n
x x R .
2. , ,
n
x y x y x y + + R .
3. , ,
n
x x x = R R.
4. 0 x = , s y slo si 0 x .

Para definir una distancia en
n
R se emplea la nocin de norma. Es posible definir
infinitas normas en
n
R . Las ms tiles son la norma
2
l , o norma eucldea, definida para
el vector ( )
1
, ,
n
n
x x x = como

2
2
1
,
n
i
i
x x
=
=

(1.38)
y la norma l

, o norma infinito,

1
max .
i
i n
x x


= (1.39)
Es trivial comprobar que ambas verifican las propiedades de norma (hgase como
ejercicio).


Teorema: Relacin entre la norma eucldea y la norma infinito
Se verifica que para todo
n
x

2
. x x n x

(1.40)


Definicin: Distancia entre dos vectores
Una vez que se dispone de una norma en un espacio (normado), como
n
R , se puede
definir la distancia entre dos vectores como
( )
2
2
1
,
n
i i
i
x y x y
=
=

(1.41)
para la norma eucldea y

1
max ,
i i
i n
x y x y


= (1.42)
para la norma del mximo, siendo ,
n
x y R .
La distancia entre vectores nos habilita para determinar errores en la estimacin de
soluciones mediante mtodos numricos. As, por ejemplo, supngase que la solucin
real de un sistema de ecuaciones lineales es
3
(1.0,1.0,1.0)
r
x = , mientras que un
mtodo numrico empleado ha arrojado el siguiente resultado:
3
(1.2100,1.0012,0.9976)
a
x = . En tal caso, el error (que depende de la norma
empleada) ser:
( ) ( ) ( )
2 2 2
2
1.0 1.21 1.0 1.0012 1.0 0.9976 0.210017,
a r
e x x = = + + (1.43)
para la norma
2
l y para la l

es
Anlisis Numrico: Matrices y Mtodos directos de resolucin de SEL
______________________________________________________________________
20 Manuel Dez Minguito

{ }
max 1.0 1.21, 1.0 1.0012, 1.0 0.9976 0.21.
a r
e x x

= = = (1.44)
Como se puede comprobar errores grandes, aunque sean slo uno o pocos puntos,
dominan la norma.

Definicin: Convergencia
Una sucesin de vectores
( )
{ }
1
k
k
x

=
de
n
R se dice que converge a

x con respecto a la
norma i si, dado 0 > , existe un nmero natura ( ) N tal que

( )

( ).
k
x x k N < (1.45)
A partir de la definicin puede demostrarse que se tiene (1.45) si y slo si

( )

lim .
k
i i
k
x x

= (1.46)
Esto es, si converge componente a componente. Vase ejemplos (1.43) y (1.44).

Asimismo, se puede demostrar que las normas eucldea y la norma infinito son
equivalentes con respecto a la convergencia.


Definicin: Norma matricial
Para medir la distancia entre dos matrices es tambin necesario recurrir al concepto de
norma.
El espacio ( )
n
M R es un espacio normado con la norma matricial , que es una
aplicacin de ( )
n
M R en R, verificando las siguientes propiedades [Molina, 1996]
1. 0, ( )
n
A A M R .
2. , , ( )
n
A B A B A B M + + R .
3. , ( ),
n
A A A M = R R .
4. Si 0 A = , entonces 0 A = .
5. , , ( )
n
A B A B A B M R .

Ntese que la ltima propiedad hace diferente la norma matricial de las normas
vectoriales usuales. La distancia entre matrices puede entonces definirse de la forma
usual como , , ( )
n
A B A B M R . Del mismo modo que en
n
R es posible definir
mltiples normas matriciales, pero aqu nos vamos a restringir a las derivadas de la
norma eucldea y la norma matricial.

Definicin: Norma subordinada y normal natural
Dada una norma matricial
M
, se dice que es compatible con una norma vectorial
V

si se verifica
, ( ),
n
V
n
V M
Ax A x A M x R R . (1.47)
As, se define la norma matricial
M
subordinada o inducida por la norma vectorial
V
como

{ }
sup : 1
V
M V
A Ax x = = . (1.48)
Anlisis Numrico: Matrices y Mtodos directos de resolucin de SEL
______________________________________________________________________
21 Manuel Dez Minguito
Esta se denomina norma natural. Es evidente demostrar que esta norma subordinada es
compatible con la norma vectorial dada. Las normas inducidas ms empleadas son
1.
1
1
max , 1
n
ij
i
A a j n
=



=


inducida por
1
1
n
i
i
x x
=
=

.
2.
1/2
2
2
1
max , 1
n
ij
i
A a j n
=




=

inducida por
2
2
1
n
i
i
x x
=
=

.
3.
1
max , 1
n
ij
i
A a j n

=



=


inducida por
{ } max , 1
i
x x j n

= .

Definicin: Condicionamiento de matrices
En cualquier mtodo numrico, adems del coste computacional, es importante tener en
cuenta la precisin de los mismos, es decir, los errores de redondeo que se comenten.
Estos hacen que en vez de conseguir la solucin exacta
1
( )
n
x M

R del sistema
Ax b = , ( )
n
A M R y
1
( )
n
b M

R , se llegue a una solucin
1
* ( )
n
x M

R , que
satisface no Ax b = , sino
* , Ax b r = + (1.49)
donde
1
( )
n
r M

R . Llamaremos al vector r el residual. Por tanto el error cometido es

1
* , ( ).
n
e x x e M

= R (1.50)
El residual no es un indicativo de la magnitud del error cometido. Para ello, necesitamos
de una medida apropiada, dada por la norma (o distancia matemtica) del espacio
normado ( )
n
M R . Segn la norma adoptada en la definicin anterior, si denotamos por
( ) C A a la aplicacin siguiente
1
( ) : ( ) , A
n
C A M A

R R , se puede demostrar
fcilmente [Conte y Boor, 1980] a partir de las ecuaciones (1.49) y (1.50) que

1
( ) .
( )
r e r
C A
C A b x b
(1.51)
Las desigualdades anteriores nos dan una cota superior y otra inferior del error relativo
/ e x . Las cotas son fcilmente calculables, dado un sistema y su solucin
(estimacin). Al nmero ( ) C A R, se le denomina condicionamiento de la matriz A o
del sistema Ax b = . Cuanto ms cercano a 1 est ( ) C A , ms prximos estarn ( ) C A y
su inverso y mejor ser entonces la estimacin del error relativo.

Definicin: Autovalores y autovectores
Sea ( )
n
A M R . Entonces diremos que un escalar es autovalor de A si existe un
vector no nulo
n
v R tal que
, Av v = (1.52)
en cuyo caso se dice que v es un autovector de A asociado al autovalor .

Propiedades: Autovalores y autovectores
Sea v un autovector de A asociado al autovalor , y , , R. Entonces se cumple:
1. es un autovalor de A con autovector v .
Anlisis Numrico: Matrices y Mtodos directos de resolucin de SEL
______________________________________________________________________
22 Manuel Dez Minguito
2. ( ) es un autovalor de
n
A I con autovector v .
3.
k
es un autovalor de
k
A con autovector v .
4. Si ( ) q es un polinomio, entonces ( ) q es autovalor de ( ) q A con autovector v .
5. Si A tiene inversa, entonces 0 y
1

es autovalor de
1
A

con autovector
v .
6. A y
T
A tienen los mismos autovalores, aunque los autovectores son, en general,
distintos.

Definicin: Polinomio caracterstico
Sea ( )
n
A M R y un autovalor de A, entonces se define el polinomio caracterstico
de A como
( ) det 0.
n
A I = (1.53)
En efecto, (1.53) es un polinomio de grado n .


Definicin: Multiplicidad algebraica y geomtrica
Sea ( )
n
A M R y un autovalor de A, entonces se define:
1. Multiplicidad algebraica de
0
, denotada por
0
( )
a
m , a la multiplicidad de
0

como raz del polinomio caracterstico ( ) ( ) det 0
n
q A I = = . El polinomio
( ) q puede factorizarse como ( )
0
( )
0
( ) ( )
a
m
q p

= , siendo ( ) p un
polinomio de grado
0
( )
a
n m que no se anula en
0
(
0
( ) 0 p ).
2. Multiplicidad geomtrica de
0
, denotada por
0
( )
g
m , al nmero de vectores
linealmente independientes asociados al autovalor
0
.

La relacin entre ambos es
0 0
1 ( ) ( )
g a
m m .

Propiedades: Polinomio caracterstico
Sea ( )
n
A M R y { }
1
m
i
i

=
autovalores de A. Entonces el polinomio caracterstico es
( ) ( ) ( ) ( )
1 2
( ) ( ) ( )
1 2
( ) 1 ,
a a a m
m m m m
m
q

= (1.54)
el determinante de A coincide con

1 2
det( )
m
A = (1.55)
y la traza de la matriz A es

1 2
( ) .
m
Traza A = + + + (1.56)


Definicin: Matriz diagonalizable
Se dice que una matriz ( )
n
A M R es diagonalizable si existe una matriz ( )
n
P M R
invertible (no singular) tal que
Anlisis Numrico: Matrices y Mtodos directos de resolucin de SEL
______________________________________________________________________
23 Manuel Dez Minguito

( )
11
1
0
0
ij
n
nn
d
D P AP
d



= = =


(1.57)
es una matriz diagonal. Entonces, cada columna de P es un autovector de A asociado
al correspondiente elemento de D, que ser un autovalor de A. Puesto que la matriz
P es no singular, recurdese que las n filas son linealmente independientes, luego
forman una base de
n
.

Propiedades: Matrices diagonalizables
Sea ( )
n
A M R . Entonces se tiene:
1. A es diagonalizable si y slo si tiene n autovectores linealmente
independientes.
2. Si { }
1
n
k
k
v
=
, con
n
k
v , son autovectores de A con autovalores reales asociados
{ }
1
n
k
k

=
, distintos dos a dos (i.e.
k j
= , si y slo si k j = ), entonces los
autovectores { }
1
n
k
k
v
=
son linealmente independientes. En otras palabras, a
autovalores distintos de A le corresponden autovectores linealmente
independientes.
3. A es diagonalizables si y slo si ( ) ( )
a g
m m = para todo autovalor de A.

Definicin: Radio espectral de una matriz
El radio espectral de una matriz ( )
n
A M R se define como

( ) max A = (1.58)
autovalor. El concepto de radio espectral est estrechamente relacionado con la
norma de una matriz.


Teorema: Relacin entre radio espectral y norma de una matriz
Dada una matriz ( )
n
A M R , se cumple:
1.
1/ 2
2
( )
T
AA A =


2. ( )
p
A A para cualquier norma
p
l .
Un resultado ntimamente relacionado con el punto (2) de este teorema es que, dada una
matriz A, se verifica que existe una norma
p
A y un 0 > tal que ( )
p
A A < + .



Definicin: Matriz convergente
Se define matriz convergente a aquella matriz ( )
n
A M R que verifica
Anlisis Numrico: Matrices y Mtodos directos de resolucin de SEL
______________________________________________________________________
24 Manuel Dez Minguito

( )
lim 0
k
ij k
A

= (1.59)
para todo elemento 1 , i j n de la matriz.

Matrices convergentes, aquellos cuyos elementos iterados tienden a cero, son de
importancia a la hora de estudiar mtodos iterativos.

Propiedades: Matrices convergentes
Las siguientes afirmaciones son equivalentes:
1. ( )
n
A M R es una matriz convergente.
2. lim 0
n
n
A

= para alguna norma natural i .


3. ( ) 1 A < .
4. lim 0
k
k
A x

= para todo
n
x .

La definicin de radio espectral es muy apropiada y til pues, de forma anloga a series
de nmeros reales o funciones, el criterio de convergencia es ( ) 1 A < .






Anlisis Numrico: Matrices y Mtodos directos de resolucin de SEL
______________________________________________________________________
25 Manuel Dez Minguito
Sistemas sencillos de resolver

Como comentamos anteriormente, la idea que subyace en todos los mtodos (directos)
para la resolucin de SEL es reducir el sistema original a otro equivalente ms fcil de
resolver. Estos sistemas de ecuaciones especialmente sencillos son los que a
continuacin se describen. Proporcionaremos adems el algoritmo que facilita la
solucin del sistema.

Matriz diagonal
Consideremos un sistema Ax b = donde
1
, ( )
n
x b M

R y ( )
n
A M R es una matriz
diagonal. Explcitamente,

11 1 1 0
0
n
n
nn
a x b
x
b
a









=










. . . (1.1)
En este caso, la solucin del sistema de ecuaciones es inmediata, puesto que las n
ecuaciones estn factorizadas, despejando componente a componente:

1 1 11
/
/ n
n nn
x b a
x
b a





. . (1.2)
Evidentemente, se para poder despejar cada componente es necesario que los elementos
de la diagonal principal de A sean no nulos. En el caso que 0
ii
a = para algn i y
0
i
b = , existen infinitas soluciones:
i
x R. Por otro lado, es evidente que si 0
ii
a =
1 i n , 0
i
b , solucin del sistema.

Algoritmo[Kincaid y Cheney, 1990]: Matriz diagonal
I nput , ,
ij i
n a b
For 1 i = to i n =
/
i i ii
x b a
End
Output
i
x
Break
El algoritmo est expresado en pseudocdigo. El lector deber emplear la sintaxis
propia del entorno de programacin que est empleando.

La siguiente notacin es comn al resto de algoritmos presentados.

Con I nput indicamos las entradas mnimas requeridas para implementar el algoritmo y
resolver el SEL dado. Output es el resultado o producto del programa. I f, Else y Then
representan los comandos bsicos en cualquier entorno para llevar a cabo
comparaciones y bifurcaciones abierta. For, While, Do son los comandos tpicos para
llevar a cabo bucles y bucles condicionados. Todos ellos se cierran con End. Para
indicar la finalizacin del programa se emplea la directiva Break.
Anlisis Numrico: Matrices y Mtodos directos de resolucin de SEL
______________________________________________________________________
26 Manuel Dez Minguito
Algoritmo 1. Matriz diagonal

Matriz triangular inferior
Otro caso sencillo de resolver es cuando la matriz asociada al SEL es triangular superior
o triangular inferior. Supongamos que es del primer tipo, triangular inferior, por lo que
el sistema tendr la forma siguiente


11
1 1
21
1 1
0 0
0
n
n
n nn nn
a
x b
a
x
b
a a a

.
. .
.

(1.3)

Admitiendo en principio que los elementos de la diagonal principal son no nulos:
0
ii
a i , es sencillo comprobar que los valores
i
x pueden irse obteniendo,
sucesivamente, del siguiente modo
1. Determinar directamente
1 1 11
/ x b a = .
2. Sustituir el valor obtenido (
1
x ) en la segunda ecuacin
3. Resolver para
2 2 22 21 1 22
/ / x b a a x a =
4. Sustituir el valor obtenido (
2
x ) en la tercera ecuacin
5. Etc. Proceder de igual modo hasta
n
x
As, se van obteniendo los
1 2
, , ,
n
x x x , en este orden. Por el orden el que se van
resolviendo las ecuaciones, se denomina al procedimiento mtodo de sustitucin hacia
delante.

Algoritmo [Kincaid y Cheney, 1990]: Mtodo de sustitucin hacia delante
I nput , ,
ij i
n a b
For 1 i = to i n =

1
1
/
i
i i ij j ii
j
x b a x a


End
Output
i
x
Break
El algoritmo puede completarse con toda clase de refinamientos. Por ejemplo, este
algoritmo presupone que nos valores de la diagonal principal
ii
a son no nulos, luego
sera conveniente programar un filtro para evitar desbordamientos por valores nulos (o
muy pequeos en mdulo).
Algoritmo 2. Mtodo de sustitucin hacia delante



Anlisis Numrico: Matrices y Mtodos directos de resolucin de SEL
______________________________________________________________________
27 Manuel Dez Minguito
Matriz triangular superior
Del mismo modo que para matrices triangulares inferiores se puede disear un
algoritmo semejante para matrices triangulares superiores. En este caso, el sistema tiene
la forma

11 12 1
1 1
1
0
0 0
n
n n
n
n
nn
a a a
x b
a
x
b
a

.
. .
.

, (1.4)
y el mtodo se denomina de sustitucin hacia atrs.



Algoritmo [Kincaid y Cheney, 1990]: Mtodo de sustitucin hacia atrs
I nput , ,
ij i
n a b
For 1 i = to i n =

1
/
n
i i ij j ii
j i
x b a x a
= +





End
Output
i
x
Break
Puede resultar til a la hora de programar el algoritmo el definir una matriz extendida
( )
|
ij i
a b , lo cual reducira el nmero de operaciones as como los requerimientos de
memoria. No obstante, el cdigo puede resultar algo ms oscuro y, con la capacidad de
memoria de los ordenadores actuales, no existen, en general, demasiados problemas de
limitacin de memoria.
Algoritmo 3. Mtodo de sustitucin hacia atrs

Matrices reducibles a triangulares mediante permutaciones de
filas

Aunque la resolucin del SEL ya no es directa, incluimos en esta seccin de sistemas
fcilmente resolubles a aquellos que son reducibles a alguno de los tipos anteriores
mediante la permutacin de las ecuaciones. Recurdese que la permutacin de
ecuaciones era una de las operaciones elementales que transformaban un sistema en otro
equivalente (en este caso es trivial). Por ejemplo, el siguiente sistema de tres ecuaciones

1
11 12 1
21 22 23 2 2
3
31 3
0
0 0
b
a a x
a a a x b
x
a b









=









(1.5)
Se reduce a uno cuya matriz asociada es una matriz triangular inferior. La secuencia de
permutaciones es
1 3 2 3
, E E E E , quedando
Anlisis Numrico: Matrices y Mtodos directos de resolucin de SEL
______________________________________________________________________
28 Manuel Dez Minguito

3 31
3
11 12 1 1
21 22 23 2
2
0 0
0
b a
x
a a x b
a a a x
b









=












. (1.6)
Anlisis Numrico: Matrices y Mtodos directos de resolucin de SEL
______________________________________________________________________
29 Manuel Dez Minguito
Solucin de SELs por eliminacin

Pero, en general, lo que pretendemos es resolver cualquier tipo de SEL, sean cuales sean
las entradas de la matriz asociada y su rango (siempre y cuando tenga solucin). En esta
seccin presentamos los mtodos ms populares que emplean el mtodo de eliminacin
gaussiana. La eliminacin gaussiana no es ms que lo que ya comentamos
anteriormente: reducir el sistema original a otro ms sencillo mediante operaciones
elementales. Por supuesto, la intuicin en la resolucin de SEL juega un papel
importante, permitiendo optimizar los clculos para resolver un sistema dado; pero,
puesto que de lo que se trata es de implementarlo en un computador, se debe
sistematizar la reduccin. Vemos a continuacin diferentes formas de llevarla a cabo.

Mtodo de Gauss con sustitucin hacia atrs
Consideremos el siguiente sistema:



11 1 1 1
1
n
m mn n
n
a a x b
a a x
b









=











. . . .

(1.7)

A x b = , ( )
n
A M R . La idea es reducir A, por ejemplo, a una matriz triangular
superior de la forma
`
A x b = siendo

11 1 1 1
0
n
n
n
mn
a a x b
x
b
a









=











. . .

, (1.8)
el sistema equivalente a (1.7). En tal caso
1
n
i ij j
j i
i
ij
b a x
x
a
= +




donde
1, 2, ,1 i n n = son las soluciones del sistema (1.8), y por tanto las de (1.7).

Algoritmo [Burden y Faires, 1985]: Mtodo de Gauss con sustitucin hacia atrs
I nput , ,
ij i
n a b
// Proceso de eliminacin gaussiana
For 1 i = to 1 i n =
For 1 j i = + to i n =
/
ji ji ii
m a a =

( )
j ji i j
E m E E
End
End
I f 0
nn
a = (no existe solucin nica) Then Break
Anlisis Numrico: Matrices y Mtodos directos de resolucin de SEL
______________________________________________________________________
30 Manuel Dez Minguito

// Sustitucin hacia atrs
For 1 i = to i n =

1
/
n
i i ij j ii
j i
x b a x a
= +





End
Output
i
x
Break

Se pueden incluir chequeos para comprobar que la matriz es, en efecto, cuadrada, que
el determinante es no nulo, etc. Estos refinamientos quedan a discrecin del lector.

Ntese que por ahorrar notacin no hemos denotado las nuevas variables con tilde.

%GAUSSI AN ELI MI NATI ON WI TH BACKWARD SUBSTI TUTI ON ALGOTI THM 6. 1
%
%To sol ve t he n by n l i near syst em
%
%E1: A( 1, 1) X( 1) + A( 1, 2) X( 2) +. . . + A( 1, n) X( n) = A( 1, n+1)
%E2: A( 2, 1) X( 1) + A( 2, 2) X( 2) +. . . + A( 2, n) X( n) = A( 2, n+1)
%:
%.
%EN: A( n, 1) X( 1) + A( n, 2) X( 2) +. . . + A( n, n) X( n) = A( n, n+1)
%
%I NPUT: number of unknowns and equat i ons n; augment ed
% mat r i x A = ( A( I , J ) ) wher e 1<=I <=n and 1<=J <=n+1.
%
%OUTPUT: sol ut i on x( 1) , x( 2) , . . . , x( n) or a message t hat t he
% l i near syst emhas no uni que sol ut i on.
syms( ' AA' , ' NAME' , ' I NP' , ' OK' , ' N' , ' I ' , ' J ' , ' A' , ' NN' , ' M' ) ;
syms( ' I CHG' , ' I P' , ' J J ' , ' C' , ' XM' , ' K' , ' X' , ' SUM' ) ;
syms( ' KK' , ' FLAG' , ' OUP' ) ;
TRUE = 1;
FALSE = 0;
f pr i nt f ( 1, ' Thi s i s Gaussi an El i mi nat i on t o sol ve a l i near
syst em. \ n' ) ;
f pr i nt f ( 1, ' The ar r ay wi l l be i nput f r oma t ext f i l e i n t he
or der : \ n' ) ;
f pr i nt f ( 1, ' A( 1, 1) , A( 1, 2) , . . . , A( 1, N+1) , \ n' ) ;
f pr i nt f ( 1, ' A( 2, 1) , A( 2, 2) , . . . , A( 2, N+1) , \ n' ) ;
f pr i nt f ( 1, ' . . . , A( N, 1) , A( N, 2) , . . . , A( N, N+1) \ n\ n' ) ;
f pr i nt f ( 1, ' Pl ace as many ent r i es as desi r ed on each l i ne, but
separ at e ' ) ;
f pr i nt f ( 1, ' ent r i es wi t h\ n' ) ;
f pr i nt f ( 1, ' at l east one bl ank. \ n\ n\ n' ) ;
f pr i nt f ( 1, ' Has t he i nput f i l e been cr eat ed? - ent er Y or N. \ n' ) ;
AA = i nput ( ' ' , ' s' ) ;
i f AA == ' Y' | AA == ' y'
f pr i nt f ( 1, ' I nput t he f i l e name i n t he f or m- dr i ve: \ \ name. ext \ n' ) ;
f pr i nt f ( 1, ' f or exampl e: A: \ \ DATA. DTA\ n' ) ;
NAME = i nput ( ' ' , ' s' ) ;
I NP = f open( NAME, ' r t ' ) ;
OK = FALSE;
whi l e OK == FALSE
f pr i nt f ( 1, ' I nput t he number of equat i ons - an i nt eger . \ n' ) ;
N = i nput ( ' ' ) ;
i f N > 0
Anlisis Numrico: Matrices y Mtodos directos de resolucin de SEL
______________________________________________________________________
31 Manuel Dez Minguito
A = zer os( N, N+1) ;
X = zer os( 1, N) ;
f or I = 1: N
f or J = 1: N+1
A( I , J ) = f scanf ( I NP, ' %f ' , 1) ;
end;
end;
OK = TRUE;
f cl ose( I NP) ;
el se f pr i nt f ( 1, ' The number must be a posi t i ve i nt eger . \ n' ) ;
end;
end;
el se
f pr i nt f ( 1, ' The pr ogr amwi l l end so t he i nput f i l e can be
cr eat ed. \ n' ) ;
end;
i f OK == TRUE
%STEP 1
%El i mi nat i on Pr ocess
NN = N- 1;
M = N+1;
I CHG = 0;
I = 1;
whi l e OK == TRUE & I <= NN
%STEP 2
%use I P i nst ead of p
I P = I ;
whi l e abs( A( I P, I ) ) <= 1. 0e- 20 & I P <= N
I P = I P+1;
end;
i f I P == M
OK = FALSE;
el se
%STEP 3
i f I P ~= I
f or J J = 1: M
C = A( I , J J ) ;
A( I , J J ) = A( I P, J J ) ;
A( I P, J J ) = C;
end;
I CHG = I CHG+1;
end;
%STEP 4
J J = I +1;
f or J = J J : N
%STEP 5
%use XM i n pl ace of m( J , I )
XM = A( J , I ) / A( I , I ) ;
%STEP 6
f or K = J J : M
A( J , K) = A( J , K) - XM * A( I , K) ;
end;
%Mul t i pl i er XM coul d be saved i n A( J , I ) .
A( J , I ) = 0;
end;
end;
I = I +1;
end;
i f OK == TRUE
%STEP 7
i f abs( A( N, N) ) <= 1. 0e- 20
Anlisis Numrico: Matrices y Mtodos directos de resolucin de SEL
______________________________________________________________________
32 Manuel Dez Minguito
Algoritmo 4. Mtodo de Gauss con sustitucin hacia atrs



Ejercicios

OK = FALSE;
el se
%STEP 8
%st ar t backwar d subst i t ut i on
X( N) = A( N, M) / A( N, N) ;
%STEP 9
f or K = 1: NN
I = NN- K+1;
J J = I +1;
SUM = 0;
f or KK = J J : N
SUM = SUM - A( I , KK) * X( KK) ;
end;
X( I ) = ( A( I , M) +SUM) / A( I , I ) ;
end;
%STEP 10
%pr ocedur e compl et ed successf ul l y
f pr i nt f ( 1, ' Choi ce of out put met hod: \ n' ) ;
f pr i nt f ( 1, ' 1. Out put t o scr een\ n' ) ;
f pr i nt f ( 1, ' 2. Out put t o t ext f i l e\ n' ) ;
f pr i nt f ( 1, ' Pl ease ent er 1 or 2. \ n' ) ;
FLAG = i nput ( ' ' ) ;
i f FLAG == 2
f pr i nt f ( 1, ' I nput t he f i l e name i n t he f or m- dr i ve: \ \ name. ext \ n' ) ;
f pr i nt f ( 1, ' f or exampl e: A: \ \ OUTPUT. DTA\ n' ) ;
NAME = i nput ( ' ' , ' s' ) ;
OUP = f open( NAME, ' wt ' ) ;
el se
OUP = 1;
end;
f pr i nt f ( OUP, ' GAUSSI AN ELI MI NATI ON\ n\ n' ) ;
f pr i nt f ( OUP, ' The r educed syst em- out put by r ows: \ n' ) ;
f or I = 1: N
f or J = 1: M
f pr i nt f ( OUP, ' %11. 8f ' , A( I , J ) ) ;
end;
f pr i nt f ( OUP, ' \ n' ) ;
end;
f pr i nt f ( OUP, ' \ n\ nHas sol ut i on vect or : \ n' ) ;
f or I = 1: N
f pr i nt f ( OUP, ' %12. 8f ' , X( I ) ) ;
end;
f pr i nt f ( OUP, ' \ n\ nwi t h %d r ow i nt er change( s) \ n' , I CHG) ;
i f OUP ~= 1
f cl ose( OUP) ;
f pr i nt f ( 1, ' Out put f i l e %s cr eat ed successf ul l y \ n' , NAME) ;
end;
end;
end;
i f OK == FALSE
f pr i nt f ( 1, ' Syst emhas no uni que sol ut i on\ n' ) ;
end;
end;

Anlisis Numrico: Matrices y Mtodos directos de resolucin de SEL
______________________________________________________________________
33 Manuel Dez Minguito
Resolver mediante el mtodo de Gauss con sustitucin hacia atrs los siguientes SEL:

1 2 3 4
1 2 3 4
1 2 3 4
1 2 3 4
6 2 2 4 12
12 8 6 10 34
3 13 9 3 27
6 4 18 38
x x x x
x x x x
x x x x
x x x x
+ + =
+ + =
+ + =
+ + =
([Kincaid y Cheney, 1990], pag. 139)

1 2 3
1 2 3
1 2 3
0.2614 0.1735 0.8642 0.7521
0.9411 0.0175 0.1463 0.6310
0.8641 0.4243 0.0711 0.2501
x x x
x x x
x x x
+ + =
+ + =
+ =
([Kincaid y Cheney, 1990], pag. 158,
ejercicio 22)

1
2
3
4
1 1 2 1 8
2 2 3 3 20
1 1 1 0 2
1 1 4 3 4
x
x
x
x











=











([Burden y Faires, 1985], pag. 298)


Limitaciones
El mtodo de eliminacin gaussiana, esquematizado en el Algoritmo 4 presenta algunas
limitaciones.

En primer lugar, lgicamente, el algoritmo no es aplicable cuando no sistema no tiene
solucin o no tiene solucin nica. No obstante, estos casos pueden ser fcilmente
identificados calculando previamente el determinante de la matriz asociada al sistema
(aunque esto incrementa considerablemente el nmero de operaciones).

Otra limitacin obvia proviene del hecho que en algn paso intermedio del Algoritmo 4
se produzca una divisin por cero (o nmeros cercanos en mdulo a cero). Estos pueden
ocurrir al determinar los factores /
ji ji ii
m a a = para , i j dados; aunque eso no implica
que el sistema no tenga solucin, sino que la tcnica debe ser modificada para resolver
esa eventualidad. En la mayora de los casos, es suficiente hacer una bsqueda en los
elementos siguientes de la misma columna e intercambiar las filas del elemento (o
pivote) nulo y la del nuevo no nulo encontrado. Para ilustrar esta dificultad, tratemos de
resolver el tercer ejercicio propuesto en el apartado anterior.

El sistema propuesto es

1
2
3
4
1 1 2 1 8
2 2 3 3 20
1 1 1 0 2
1 1 4 3 4
x
x
x
x











=











. (1.9)
Anlisis Numrico: Matrices y Mtodos directos de resolucin de SEL
______________________________________________________________________
34 Manuel Dez Minguito
Si seguimos paso a paso el Algoritmo 4, se eliminan los
1 i
a con 2 i n llegndose
al sistema
(1) (1)
A x b = , donde el superndice indica que se trata de la matriz resultante
despus de la primera iteracin, a saber


1
2
3
4
1 1 2 1 8
0 0 1 1 4
0 2 1 1 6
0 0 2 4 12
x
x
x
x











=











. (1.10)
El problema aparece a continuacin: el elemento de pivote actual, el
22
a , tras la primera
iteracin (denotado como
(1)
22
a ) es nulo. Por tanto, no podemos llevar a cabo la
eliminacin de los siguientes elementos de la segunda columna. Nuestro algoritmo
producira un infinito y dejara de resolver el sistema o, en trminos matemticos,
multiplicar por cero elimina ecuaciones. Lo que s podemos hacer es permutar la fila
con pivote nulo por otra con un elemento no nulo (sistema (1.11)) en la misma columna
(en este caso la fila tercera) y proseguir con el algoritmo.

1
2
3
4
1 1 2 1 8
0 2 1 1 6
0 0 1 1 4
0 0 2 4 12
x
x
x
x











=











. (1.11)
En caso de que no existiera otro pivote no nulo, lgicamente, el sistema podra presentar
infinitas soluciones o bien no tener solucin. As pues, el Algoritmo 4 modificado,
incluyendo la bsqueda de pivotes no nulos, quedara como sigue:


Algoritmo[Burden y Faires, 1985]: Mtodo de Gauss con bsqueda de pivote
I nput , ,
ij i
n a b
// Proceso de eliminacin gaussiana
For 1 i = to 1 i n =
Find la menor fila p with i p n and 0
pi
a
I f p (no existe solucin nica) Then Break
I f p i then
p i
E E
For 1 j i = + to j n =
/
ji ji ii
m a a =

( )
j ji i j
E m E E
End
End
I f 0
nn
a = (no existe solucin nica) Then Break

// Sustitucin regresiva hacia atrs
For 1 i = to i n =

1
/
n
i i ij j ii
j i
x b a x a
= +





Anlisis Numrico: Matrices y Mtodos directos de resolucin de SEL
______________________________________________________________________
35 Manuel Dez Minguito
End
Output
i
x
Break

En caso que el sistema no presente solucin nica (tenido en cuenta en este algoritmo),
discernir entre infinitas soluciones o sistema incompatible requerira operaciones
adicionales.
%GAUSSI AN ELI MI NATI ON WI TH PARTI AL PI VOTI NG ALGORI THM 6. 2
%
%To sol ve t he n by n l i near syst em
%
%E1: A( 1, 1) X( 1) + A( 1, 2) X( 2) +. . . + A( 1, n) X( n) = A( 1, n+1)
%E2: A( 2, 1) X( 1) + A( 2, 2) X( 2) +. . . + A( 2, n) X( n) = A( 2, n+1)
%:
%.
%EN: A( n, 1) X( 1) + A( n, 2) X( 2) +. . . + A( n, n) X( n) = A( n, n+1)
%
%I NPUT: number of unknowns and equat i ons n; augment ed
% mat r i x A = ( A( I , J ) ) wher e 1<=I <=n and 1<=J <=n+1.
%
%OUTPUT: sol ut i on x( 1) , x( 2) , . . . , x( n) or a message t hat t he
% l i near syst emhas no uni que sol ut i on.
syms( ' AA' , ' NAME' , ' I NP' , ' OK' , ' N' , ' I ' , ' J ' , ' A' ) ;
syms( ' M' , ' NROW' , ' NN' , ' I CHG' , ' I MAX' , ' AMAX' , ' J J ' ) ;
syms( ' I P' , ' J P' , ' NCOPY' , ' I 1' , ' J 1' , ' XM' , ' K' , ' N1' ) ;
syms( ' X' , ' N2' , ' SUM' , ' KK' , ' FLAG' , ' OUP' ) ;
TRUE = 1;
FALSE = 0;
f pr i nt f ( 1, ' Thi s i s Gaussi an El i mi nat i on wi t h Par t i al Pi vot i ng. \ n' ) ;
f pr i nt f ( 1, ' The ar r ay wi l l be i nput f r oma t ext f i l e i n t he
or der : \ n' ) ;
f pr i nt f ( 1, ' A( 1, 1) , A( 1, 2) , . . . , A( 1, N+1) \ n' ) ;
f pr i nt f ( 1, ' A( 2, 1) , A( 2, 2) , . . . , A( 2, N+1) , \ n' ) ;
f pr i nt f ( 1, ' . . . , A( N, 1) , A( N, 2) , . . . , A( N, N+1) \ n\ n' ) ;
f pr i nt f ( 1, ' Pl ace as many ent r i es as desi r ed on each l i ne, but
separ at e ' ) ;
f pr i nt f ( 1, ' ent r i es wi t h\ n' ) ;
f pr i nt f ( 1, ' at l east one bl ank. \ n\ n\ n' ) ;
f pr i nt f ( 1, ' Has t he i nput f i l e been cr eat ed? - ent er Y or N. \ n' ) ;
AA = i nput ( ' ' , ' s' ) ;
i f AA == ' Y' | AA == ' y'
f pr i nt f ( 1, ' I nput t he f i l e name i n t he f or m- dr i ve: \ \ name. ext \ n' ) ;
f pr i nt f ( 1, ' f or exampl e: A: \ \ DATA. DTA\ n' ) ;
NAME = i nput ( ' ' , ' s' ) ;
I NP = f open( NAME, ' r t ' ) ;
OK = FALSE;
whi l e OK == FALSE
f pr i nt f ( 1, ' I nput t he number of equat i ons - an i nt eger . \ n' ) ;
N = i nput ( ' ' ) ;
i f N > 0
A = zer os( N, N+1) ;
X = zer os( 1, N) ;
NROW= zer os( 1, N) ;
f or I = 1: N
f or J = 1: N+1
A( I , J ) = f scanf ( I NP, ' %f ' , 1) ;
end;
end;
OK = TRUE;
Anlisis Numrico: Matrices y Mtodos directos de resolucin de SEL
______________________________________________________________________
36 Manuel Dez Minguito
f cl ose( I NP) ;
el se f pr i nt f ( 1, ' The number must be a posi t i ve i nt eger . \ n' ) ;
end;
end;
el se
f pr i nt f ( 1, ' The pr ogr amwi l l end so t he i nput f i l e can be
cr eat ed. \ n' ) ;
end;
i f OK == TRUE
M = N+1;
%STEP 1
f or I = 1: N
NROW( I ) = I ;
end;
%i ni t i al i ze r ow poi nt er
NN = N- 1;
I CHG = 0;
I = 1;
%STEP 2
whi l e OK == TRUE & I <= NN
%STEP 3
I MAX = NROW( I ) ;
AMAX = abs( A( I MAX, I ) ) ;
I MAX = I ;
J J = I +1;
f or I P = J J : N
J P = NROW( I P) ;
i f abs( A( J P, I ) ) > AMAX
AMAX = abs( A( J P, I ) ) ;
I MAX = I P;
end;
end;
%STEP 4
i f AMAX <= 1. 0e- 20
OK = FALSE;
el se
%STEP 5
%si mul at e r ow i nt er change
i f NROW( I ) ~= NROW( I MAX)
I CHG = I CHG+1;
NCOPY = NROW( I ) ;
NROW( I ) = NROW( I MAX) ;
NROW( I MAX) = NCOPY;
end;
I 1 = NROW( I ) ;
%STEP 6
f or J = J J : N
J 1 = NROW( J ) ;
%STEP 7
XM = A( J 1, I ) / A( I 1, I ) ;
%STEP 8
f or K = J J : M
A( J 1, K) = A( J 1, K) - XM*A( I 1, K) ;
end;
%Mul t i pl i er XM coul d be saved i n A( J 1, I )
A( J 1, I ) = 0;
end;
end;
I = I +1;
end;
i f OK == TRUE
Anlisis Numrico: Matrices y Mtodos directos de resolucin de SEL
______________________________________________________________________
37 Manuel Dez Minguito
%STEP 9
N1 = NROW( N) ;
i f abs( A( N1, N) ) <= 1. 0e- 20
OK = FALSE;
%syst emhas no uni que sol ut i on
el se
%STEP 10
%st ar t backwar d subst i t ut i on
X( N) = A( N1, M) / A( N1, N) ;
%STEP 11
f or K = 1: NN
I = NN - K + 1;
J J = I + 1;
N2 = NROW( I ) ;
SUM = 0;
f or KK = J J : N
SUM = SUM- A( N2, KK) *X( KK) ;
end;
X( I ) = ( A( N2, M) + SUM) / A( N2, I ) ;
end;
%STEP 12
%pr ocedur e compl et ed successf ul l y
f pr i nt f ( 1, ' Choi ce of out put met hod: \ n' ) ;
f pr i nt f ( 1, ' 1. Out put t o scr een\ n' ) ;
f pr i nt f ( 1, ' 2. Out put t o t ext f i l e\ n' ) ;
f pr i nt f ( 1, ' Pl ease ent er 1 or 2. \ n' ) ;
FLAG = i nput ( ' ' ) ;
i f FLAG == 2
f pr i nt f ( 1, ' I nput t he f i l e name i n t he f or m- dr i ve: \ \ name. ext \ n' ) ;
f pr i nt f ( 1, ' f or exampl e: A: \ \ OUTPUT. DTA\ n' ) ;
NAME = i nput ( ' ' , ' s' ) ;
OUP = f open( NAME, ' wt ' ) ;
el se
OUP = 1;
end;
f pr i nt f ( OUP, ' GAUSSI AN ELI MI NATI ON - PARTI AL PI VOTI NG\ n\ n' ) ;
f pr i nt f ( OUP, ' The r educed syst em- out put by r ows: \ n' ) ;
f or I = 1: N
f or J = 1: M
f pr i nt f ( OUP, ' %11. 8f ' , A( I , J ) ) ;
end;
f pr i nt f ( OUP, ' \ n' ) ;
end;
f pr i nt f ( OUP, ' \ n\ nHas sol ut i on vect or : \ n' ) ;
f or I = 1: N
f pr i nt f ( OUP, ' %12. 8f ' , X( I ) ) ;
end;
f pr i nt f ( OUP, ' \ n\ nwi t h %d r ow i nt er change( s) \ n' , I CHG) ;
f pr i nt f ( OUP, ' \ nThe r ows have been l ogi cal l y r e- or der ed t o: \ n' ) ;
f or I = 1: N
f pr i nt f ( OUP, ' %2d' , NROW( I ) ) ;
end;
f pr i nt f ( OUP, ' \ n' ) ;
i f OUP ~= 1
f cl ose( OUP) ;
f pr i nt f ( 1, ' Out put f i l e %s cr eat ed successf ul l y \ n' , NAME) ;
end;
end;
end;
i f OK == FALSE
f pr i nt f ( 1, ' Syst emhas no uni que sol ut i on\ n' ) ;
Anlisis Numrico: Matrices y Mtodos directos de resolucin de SEL
______________________________________________________________________
38 Manuel Dez Minguito
end;
end;


Algoritmo 5. Mtodo de Gauss con sustitucin hacia atrs y bsqueda de pivote.

Orden del algoritmo

Dos aspectos importantes a la hora de comparar diferentes mtodos de resolucin son
los errores de redondeo y el tiempo de clculo. Ambos dependen crticamente del
nmero de operaciones llevadas a cabo al resolver el algoritmo. Por ello, en los
algoritmos que aqu presentamos daremos el nmero total de operaciones aritmticas
que requiere el algoritmo, aunque no entraremos en los detalles de cmo son calculados.
Usualmente, el nmero total de operaciones se da por separado en sumas y restas y en
productos y divisiones, puesto que el ordenador (concretamente la unidad aritmtico-
lgica) emplea tiempos distintos para cada pareja de operaciones. Las suma de
multiplicaciones y divisiones la denotaremos como

y
+

para sumas y restas.



As, para el algoritmo de eliminacin gaussiana con sustitucin hacia atrs (incluyendo
la bsqueda de pivote no nulo), el nmero total de operaciones es de

3 2 3 2
3 3 2
2 3 5 ( 1) 3
6 2 3
( 1) 2 3 5
3 2 6
n n n n n n n n
n n n n n n n

+
+ + +
= + =
+
= + =

,
donde los primeros sumandos se refieren al cmputo para el proceso de eliminacin
gaussiana y los segundos a la sustitucin regresiva.

Ejemplos

1 2 3 4
1 2 4
1 2 3
1 2 3 4
7
2 8
2 2 3 10
2 2 0
x x x x
x x x
x x x
x x x x
+ + + =
+ + =
+ + =
+ =
([Burden y Faires, 1985], pag 300, falla por infinitas
soluciones)

1 2 3 4
1 2 4
1 2 3
1 2 3 4
7
2 5
2 2 3 10
2 2 0
x x x x
x x x
x x x
x x x x
+ + + =
+ + =
+ + =
+ =
([Burden y Faires, 1985], pag 300, falla por no tener
solucin, sistema incompatible)


Anlisis Numrico: Matrices y Mtodos directos de resolucin de SEL
______________________________________________________________________
39 Manuel Dez Minguito
1 2
1 2
0.0003 1.566 1.569
0.3454 2.436 1.018
x x
x x
+ =
=
([Conte y Boor, 1980], pag. 157, motiva la seccin
siguiente)


Mtodo de Gauss con sustitucin hacia delante

El mtodo de eliminacin gaussiana con sustitucin hacia delante es en todo anlogo al
visto en el apartado anterior, con sustitucin hacia atrs; pero en este caso, el sistema
original se reduce a una matriz triangular inferior. Por lo dems, el orden del algoritmo
y las limitaciones del mismo son idnticas a las del Algoritmo 5. Por ello, proponemos
como ejercicio al lector desarrollar e implementar (o adaptar el Algoritmo 5) el mtodo
de gauss con sustitucin hacia delante


Mtodo de Gauss-Jordan

Otro mtodo de resolucin, en la misma lnea que los dos mtodos anteriores, es el
llamado mtodo de Gauss-J ordan. El mtodo de Gauss-J ordan reduce la matriz asociada
al sistema de ecuaciones a una matriz diagonal, en vez de triangular superior o inferior.

Limitaciones

El mtodo adolece de las mismas limitaciones que los anteriores. Hay que tener especial
cuidado en que el pivote sea no nulo para lo cual es a veces necesario hacer bsquedas
de pivotes en la columna.


Algoritmo [Burden y Faires, 1985]: Mtodo de Gauss-J ordan con bsqueda de
pivote
I nput , ,
ij i
n a b
// Proceso de eliminacin gaussiana
For 1 i = to 1 i n =
Find el menor p with i p n and 0
pi
a
I f p (no existe solucin nica) Then Break
I f p i then
p i
E E
For 1 j i = + to j n =
/
ji ji ii
m a a =

( )
j ji i j
E m E E
End
For 1 j = to 1 j i =
/
ji ji ii
m a a =
Anlisis Numrico: Matrices y Mtodos directos de resolucin de SEL
______________________________________________________________________
40 Manuel Dez Minguito
Algoritmo 6. Mtodo de Gauss-J ordan con bsqueda de pivote


Orden del algoritmo

Es claro que el nmero de operaciones a la hora de resolver un sistema triangular es
inferior que en el caso de matrices triangulares. No obstante, globalmente, el nmero de
operaciones totales del algoritmo se incrementa con respecto a los dos anteriores puesto
que el nmero de operaciones realizadas para llegar a la matriz triangular es mayor. Los
nmeros de operaciones requeridos son los siguientes:

3 2 3 2
3 3
2 3 2
2 2
0
2 2
n n n n n n
n
n n n n

+
+ +
= + =

= + =

,
donde los primeros sumandos se refieren al nmero de operaciones requeridas para el
proceso de eliminacin gaussiana y los segundos a la sustitucin regresiva, en este caso
directa.

Otros mtodos

Para un tratamiento ms extenso y detallado de otros mtodos directos para la
resolucin de SELs remitimos a la obra del Prof. Fuentes OConnor [O'connor, 1993].
Mtodo hbrido
Otra posible variacin de los mtodos anteriores, aunque similar al mtodo de Gauss-
J ordan, consiste en transformar un sistema dado en un sistema triangular superior
(inferior) mediante el mtodo de Gauss y entonces transformar ste en uno diagonal. Por
la evidente similitud con los casos anteriores no profundizamos ms en este mtodo.
Simplemente mostramos el orden de este algoritmo, que es el siguiente:

( )
j ji i j
E m E E
End
End
I f 0
nn
a = (no existe solucin nica) Then Break
// Sustitucin directa (matriz diagonal)
For 1 i = to i n =
/
i i ii
x b a
End
Output
i
x
Break

Anlisis Numrico: Matrices y Mtodos directos de resolucin de SEL
______________________________________________________________________
41 Manuel Dez Minguito
3 2 3 2
3 2 3 2
2 3 5 2 9 5
( 1)
6 6
2 3 5
0
3 2 6
n n n n n n
n n n
n n n n n n n

+
+ +
= + + =
+
= + + =

,
donde el primer sumando es consecuencia de la triangulacin, el segundo de la
diagonalizacin y el tercero para despejar las incgnitas del sistema ya diagonalizado.


Mtodos de Givens (o de las rotaciones) y Householder
En estos mtodos [Molina, 1996] se busca una descomposicin de la forma A Q U = ,
siendo Q matriz ortogonal y U una matriz triangular superior. De este modo, al
multiplicar por la matriz Q traspuesta, que coincide con su inversa, se llega a
T
Q A U = , quedando un sistema triangular. Esta descomposicin es siempre posible
para cualquier matriz A no singular.

Para rdenes grandes ( 1 n ), el coste operacional del mtodo de Givens es de
3
2n
y para Householder
3
4
3
n
. Para estimar estos rdenes de magnitud slo se ha tenido
en cuenta la factorizacin en
T
Q A U = , no la resolucin completa, que aade del orden
de
2
n operaciones.

Mtodo de Cramer y de la matriz inversa
Los mtodos que requieren del clculo de determinantes o de matrices inversas para
determinar la solucin del SEL (1.24) son, aunque tericamente interesantes,
especialmente costosos. Dos ejemplos claros son determinar
1
A

para resolver
1
x A b

= , y el segundo el mtodo de Cramer.



Para el primero, slo calcular la matriz inversa, si existe, requiere las siguientes
operaciones [Burden y Faires, 1985]
3
3 2
4
3
8 9
6
n n
n n n

=
+
=

mediante el mtodo de Gauss



3
3 2
3
2
3 4
2
n n
n n n

=
+
=

mediante el mtodo de Gauss-J ordan




Para el mtodo de Cramer, se puede demostrar por induccin que si 1 n > , calcular un
slo determinante de una matriz cuadrada de orden n requiere ms de ! n operaciones.
Anlisis Numrico: Matrices y Mtodos directos de resolucin de SEL
______________________________________________________________________
42 Manuel Dez Minguito
Concretamente ( 1) ! n n productos y ! 1 n sumas y restas. Luego el total para el
mtodo de Cramer asciende a
( 1)( 1)!
( 1)( ! 1)
n n n
n n

+
= + +
= +



Los rdenes de estos algoritmos son mucho ms elevados que los mostrados por los
mtodos de Gauss y sus variaciones, lo que los hace impracticables (especialmente el de
Cramer).

Mtodos a medida
En muchas ocasiones los sistemas a resolver poseen ciertas simetras que hacen que la
matriz asociada tenga una estructura muy concreta (e. g. matrices banda). Conocer las
simetras y las estructuras facilitan el diseo de algoritmos a medida eficientes.
Proponemos como ejercicio desarrollar un programa para resolver de forma eficiente
SEL con matrices en banda.



Anlisis Numrico: Matrices y Mtodos directos de resolucin de SEL
______________________________________________________________________
43 Manuel Dez Minguito
Estrategias de pivotaje

Ya vimos anteriormente que un elemento de pivote nulo requera de un intercambio de
filas. No obstante, en la prctica es a menudo necesario intercambiar filas aunque los
pivotes sean no nulos. Los algoritmos presentados anteriormente determinan la solucin
(exacta) del sistema A x b = , si todas las operaciones se llevan a cabo con precisin
infinita. Este es un problema estrictamente computacional, puesto que matemticamente
las soluciones son exactas. Los computadores, emplean una aritmtica de precisin
finita (15 dgitos es lo usual) puesto que, lgicamente, no tienen una capacidad infinita
ni de almacenamiento ni de cmputo. No obstante, actualmente existen mdulos y
paquetes de programacin estndar que permiten incrementar la precisin de los
clculos de forma considerable, a costa del coste computacional.

El sistema siguiente, cuya solucin exacta es
1 2
( , ) (10.0,1.0) x x = , propuesto en
secciones anteriores como ejercicio, es un ejemplo de cmo el uso de aritmtica de
precisin finita puede conducir a resultados errneos [Conte y Boor, 1980]:

1 2
1 2
0.0003 1.566 1.569
0.3454 2.436 1.018 .
x x
x x
+ =
=
(1.12)
Supongamos, para que los resultados sean ms evidentes, que nuestro computador
trabaja con una aritmtica de 4 dgitos decimales. Pretendemos resolver el sistema
(1.12) mediante el mtodo de Gauss con bsqueda de pivote (Algoritmo 5). En tal caso,
el factor de escala para 2 j = y 1 i = es

21
0.3454/0.0003 1151. m = = (1.13)
Por tanto,

( )
( )
1
22
1
2
2.436 (1151.)(1.566) 2.436 1802 1804
1.018 (1151.)(1.566) 1.018 1806 1805,
a
b
= = =
= = =
(1.14)
resultando

2
1
1805/1804 1.001
(1.569 1.566 1.001)/0.0003 3.333,
x
x
= =
= =
(1.15)
que, evidentemente, es un resultado incorrecto, especialmente para
1
x .

Intuitivamente podra decirse que la fuente de error es el elemento
11
a , que est
prximo a cero. Puesto que el algoritmo no es vlido si
11
0 a = , en una mquina de
precisin finita, es lgico que el algoritmo no resuelva correctamente el sistema para
11
a
cercanos a cero.
Esta intuicin es cierta en parte, aunque imprecisa. Lo que realmente conduce a
resultados errneos es el hecho de que
11
a y
12
a son muy distintos en mdulo, esto es,
11 12
1 a a , por lo que un pequeo error debido a truncamiento o redondeo en
2
x da lugar a una gran error en
1
x . Dicho de otro modo, para calcular
1
x nos queda en el
denominador
11
0.0003 a = y en el numerador
12
1.566 a = , magnificando
11/ 12 1.566/0.0003 5220 a a = = veces el error por truncamiento. De hecho, este es
un problema general de la aritmtica que emplean los computadores: operaciones con
nmeros muy dispares. En la medida de lo posible debe evitarse este tipo de situaciones.

Anlisis Numrico: Matrices y Mtodos directos de resolucin de SEL
______________________________________________________________________
44 Manuel Dez Minguito
En el caso del sistema (1.12) y otros similares, el problema puede solucionarse
escogiendo como pivote el elemento
21 11
a a > de la segunda ecuacin, que no difiere
tanto del
22
a . Haciendo esto,
11
0.0003/0.3454 0.0008 m = = , que multiplicado por la
segunda ecuacin y restado a la primera proporciona

2
1.568 1.568, x = (1.16)
y despejando
2
1.00 x = , que es el valor correcto. Sustituyendo este valor en la segunda
ecuacin y despejado, llegamos a

1
1.018 2.438
10.01
0.3454
x
+
= = (1.17)
, que tambin es el valor correcto para
1
x . Ntese que en (1.17) las diferencias de
magnitud entre denominador y numerador no son tan grandes, impidiendo errores por
truncamiento y redondeo abultados.


A simple vista, puede resultar este problema de la aritmtica finita un problema menor,
puesto que, a fin de cuentas, los ordenadores actuales trabajan con 15 dgitos sin
problemas. La respuesta es que depende del problema en cuestin. Sin bien es posible
que para resolver un sistema particular dado nos podamos permitir errores de redondeo
en la (e. g.) 12 cifra decimal, tambin puede ocurrir que al resolver secuencialmente
SELs anidados el error se vaya acumulando, resultando al final del proceso un error
inaceptable en la solucin. Esto ltimo se da con frecuencia en la solucin de
ecuaciones diferenciales en derivadas parciales dependientes del tiempo y discretizadas
mediante diferencias finitas.


Pivotaje mximo en la columna o pivotaje parcial

Basados en las dificultades a la hora de resolver el sistema (1.12) a partir del Algoritmo
5, diseamos una nueva estrategia. La ms sencilla es seleccionar el elemento (en la
misma columna) que est por debajo de la diagonal y que tome el valor absoluto mayor.
Ese elemento ser considerado como el pivote. El pseudocdigo se detalla a
continuacin:


Algoritmo [Burden y Faires, 1985]: Mtodo de Gauss con sustitucin hacia atrs y
bsqueda de pivote mximo en la columna
I nput , ,
ij i
n a b
// Proceso de eliminacin gaussiana
For 1 i = to 1 i n =
Find el menor p with i p n and max
pi ji
i j n
a a

=
I f p or 0
pi
a = (no existe solucin nica) Then Break
I f p i Then
p i
E E
For 1 j i = + to j n =
/
ji ji ii
m a a =

( )
j ji i j
E m E E
Anlisis Numrico: Matrices y Mtodos directos de resolucin de SEL
______________________________________________________________________
45 Manuel Dez Minguito
End
End

I f 0
nn
a = (no existe solucin nica) Then Break

// Sustitucin hacia atrs
For 1 i = to i n =

1
/
n
i i ij j ii
j i
x b a x a
= +





End
Output
i
x
Break
El algoritmo garantiza que los multiplicadores
ji
m no exceden la unidad (esto no es un
factor determinante en el buen funcionamiento del algoritmo)

%GAUSSI AN ELI MI NATI ON WI TH PARTI AL PI VOTI NG ALGORI THM 6. 2
%
%To sol ve t he n by n l i near syst em
%
%E1: A( 1, 1) X( 1) + A( 1, 2) X( 2) +. . . + A( 1, n) X( n) = A( 1, n+1)
%E2: A( 2, 1) X( 1) + A( 2, 2) X( 2) +. . . + A( 2, n) X( n) = A( 2, n+1)
%:
%.
%EN: A( n, 1) X( 1) + A( n, 2) X( 2) +. . . + A( n, n) X( n) = A( n, n+1)
%
%I NPUT: number of unknowns and equat i ons n; augment ed
% mat r i x A = ( A( I , J ) ) wher e 1<=I <=n and 1<=J <=n+1.
%
%OUTPUT: sol ut i on x( 1) , x( 2) , . . . , x( n) or a message t hat t he
% l i near syst emhas no uni que sol ut i on.
syms( ' AA' , ' NAME' , ' I NP' , ' OK' , ' N' , ' I ' , ' J ' , ' A' ) ;
syms( ' M' , ' NROW' , ' NN' , ' I CHG' , ' I MAX' , ' AMAX' , ' J J ' ) ;
syms( ' I P' , ' J P' , ' NCOPY' , ' I 1' , ' J 1' , ' XM' , ' K' , ' N1' ) ;
syms( ' X' , ' N2' , ' SUM' , ' KK' , ' FLAG' , ' OUP' ) ;
TRUE = 1;
FALSE = 0;
f pr i nt f ( 1, ' Thi s i s Gaussi an El i mi nat i on wi t h Par t i al Pi vot i ng. \ n' ) ;
f pr i nt f ( 1, ' The ar r ay wi l l be i nput f r oma t ext f i l e i n t he
or der : \ n' ) ;
f pr i nt f ( 1, ' A( 1, 1) , A( 1, 2) , . . . , A( 1, N+1) \ n' ) ;
f pr i nt f ( 1, ' A( 2, 1) , A( 2, 2) , . . . , A( 2, N+1) , \ n' ) ;
f pr i nt f ( 1, ' . . . , A( N, 1) , A( N, 2) , . . . , A( N, N+1) \ n\ n' ) ;
f pr i nt f ( 1, ' Pl ace as many ent r i es as desi r ed on each l i ne, but
separ at e ' ) ;
f pr i nt f ( 1, ' ent r i es wi t h\ n' ) ;
f pr i nt f ( 1, ' at l east one bl ank. \ n\ n\ n' ) ;
f pr i nt f ( 1, ' Has t he i nput f i l e been cr eat ed? - ent er Y or N. \ n' ) ;
AA = i nput ( ' ' , ' s' ) ;
i f AA == ' Y' | AA == ' y'
f pr i nt f ( 1, ' I nput t he f i l e name i n t he f or m- dr i ve: \ \ name. ext \ n' ) ;
f pr i nt f ( 1, ' f or exampl e: A: \ \ DATA. DTA\ n' ) ;
NAME = i nput ( ' ' , ' s' ) ;
I NP = f open( NAME, ' r t ' ) ;
OK = FALSE;
whi l e OK == FALSE
f pr i nt f ( 1, ' I nput t he number of equat i ons - an i nt eger . \ n' ) ;
Anlisis Numrico: Matrices y Mtodos directos de resolucin de SEL
______________________________________________________________________
46 Manuel Dez Minguito
N = i nput ( ' ' ) ;
i f N > 0
A = zer os( N, N+1) ;
X = zer os( 1, N) ;
NROW= zer os( 1, N) ;
f or I = 1: N
f or J = 1: N+1
A( I , J ) = f scanf ( I NP, ' %f ' , 1) ;
end;
end;
OK = TRUE;
f cl ose( I NP) ;
el se f pr i nt f ( 1, ' The number must be a posi t i ve i nt eger . \ n' ) ;
end;
end;
el se
f pr i nt f ( 1, ' The pr ogr amwi l l end so t he i nput f i l e can be
cr eat ed. \ n' ) ;
end;
i f OK == TRUE
M = N+1;
%STEP 1
f or I = 1: N
NROW( I ) = I ;
end;
%i ni t i al i ze r ow poi nt er
NN = N- 1;
I CHG = 0;
I = 1;
%STEP 2
whi l e OK == TRUE & I <= NN
%STEP 3
I MAX = NROW( I ) ;
AMAX = abs( A( I MAX, I ) ) ;
I MAX = I ;
J J = I +1;
f or I P = J J : N
J P = NROW( I P) ;
i f abs( A( J P, I ) ) > AMAX
AMAX = abs( A( J P, I ) ) ;
I MAX = I P;
end;
end;
%STEP 4
i f AMAX <= 1. 0e- 20
OK = FALSE;
el se
%STEP 5
%si mul at e r ow i nt er change
i f NROW( I ) ~= NROW( I MAX)
I CHG = I CHG+1;
NCOPY = NROW( I ) ;
NROW( I ) = NROW( I MAX) ;
NROW( I MAX) = NCOPY;
end;
I 1 = NROW( I ) ;
%STEP 6
f or J = J J : N
J 1 = NROW( J ) ;
%STEP 7
XM = A( J 1, I ) / A( I 1, I ) ;
Anlisis Numrico: Matrices y Mtodos directos de resolucin de SEL
______________________________________________________________________
47 Manuel Dez Minguito
%STEP 8
f or K = J J : M
A( J 1, K) = A( J 1, K) - XM*A( I 1, K) ;
end;
%Mul t i pl i er XM coul d be saved i n A( J 1, I )
A( J 1, I ) = 0;
end;
end;
I = I +1;
end;
i f OK == TRUE
%STEP 9
N1 = NROW( N) ;
i f abs( A( N1, N) ) <= 1. 0e- 20
OK = FALSE;
%syst emhas no uni que sol ut i on
el se
%STEP 10
%st ar t backwar d subst i t ut i on
X( N) = A( N1, M) / A( N1, N) ;
%STEP 11
f or K = 1: NN
I = NN - K + 1;
J J = I + 1;
N2 = NROW( I ) ;
SUM = 0;
f or KK = J J : N
SUM = SUM- A( N2, KK) *X( KK) ;
end;
X( I ) = ( A( N2, M) + SUM) / A( N2, I ) ;
end;
%STEP 12
%pr ocedur e compl et ed successf ul l y
f pr i nt f ( 1, ' Choi ce of out put met hod: \ n' ) ;
f pr i nt f ( 1, ' 1. Out put t o scr een\ n' ) ;
f pr i nt f ( 1, ' 2. Out put t o t ext f i l e\ n' ) ;
f pr i nt f ( 1, ' Pl ease ent er 1 or 2. \ n' ) ;
FLAG = i nput ( ' ' ) ;
i f FLAG == 2
f pr i nt f ( 1, ' I nput t he f i l e name i n t he f or m- dr i ve: \ \ name. ext \ n' ) ;
f pr i nt f ( 1, ' f or exampl e: A: \ \ OUTPUT. DTA\ n' ) ;
NAME = i nput ( ' ' , ' s' ) ;
OUP = f open( NAME, ' wt ' ) ;
el se
OUP = 1;
end;
f pr i nt f ( OUP, ' GAUSSI AN ELI MI NATI ON - PARTI AL PI VOTI NG\ n\ n' ) ;
f pr i nt f ( OUP, ' The r educed syst em- out put by r ows: \ n' ) ;
f or I = 1: N
f or J = 1: M
f pr i nt f ( OUP, ' %11. 8f ' , A( I , J ) ) ;
end;
f pr i nt f ( OUP, ' \ n' ) ;
end;
f pr i nt f ( OUP, ' \ n\ nHas sol ut i on vect or : \ n' ) ;
f or I = 1: N
f pr i nt f ( OUP, ' %12. 8f ' , X( I ) ) ;
end;
f pr i nt f ( OUP, ' \ n\ nwi t h %d r ow i nt er change( s) \ n' , I CHG) ;
f pr i nt f ( OUP, ' \ nThe r ows have been l ogi cal l y r e- or der ed t o: \ n' ) ;
f or I = 1: N
Anlisis Numrico: Matrices y Mtodos directos de resolucin de SEL
______________________________________________________________________
48 Manuel Dez Minguito
f pr i nt f ( OUP, ' %2d' , NROW( I ) ) ;
end;
f pr i nt f ( OUP, ' \ n' ) ;
i f OUP ~= 1
f cl ose( OUP) ;
f pr i nt f ( 1, ' Out put f i l e %s cr eat ed successf ul l y \ n' , NAME) ;
end;
end;
end;
i f OK == FALSE
f pr i nt f ( 1, ' Syst emhas no uni que sol ut i on\ n' ) ;
end;
end;

Algoritmo 7. Mtodo de Gauss con sustitucin hacia atrs y bsqueda de pivote mximo en la columna


Limitaciones

Se ha optado por la estrategia de pivotaje ms sencilla. Determinar cul es la ms
ptima para resolver un SEL general, de nuevo depende del sistema.

En la mayora de situaciones este procedimiento es vlido, aunque existen situaciones
en las que resulta inadecuado. Por ejemplo, un rescalamiento trivial puede dar al traste
con el Algoritmo 7.

Considrese, de nuevo es sistema (1.12), pero multiplicando la primera ecuacin por
10
m
, con 4 m :

1 2
1 2
0.0003 10 1.566 10 1.569 10
0.3454 2.436 1.018 .
m m m
x x
x x
+ =
=
(1.18)
Evidentemente, la soluciones exactas no cambian:
1 2
( , ) (10.0,1.0) x x = . Si tratamos de
aplicar el Algoritmo 7, encontramos que el pivote mximo es de nuevo
11
0.0003 10
m
a = , llevndonos al mismo problema. En efecto,
21
(0.3454/0.0003) 10 1151 10
m m
m

= = . Multiplicando
21
m por la primera
ecuacin y restando la segunda, se obtiene

( )
( )
1
22
1
2
2.436 (1151 10 )(1.566 10 ) 2.436 1802 1804
1.018 (1151 10 )(1.566 10 ) 1.018 1806 1805,
m m
m m
a
b

= = =
= = =
(1.19)
dando lugar a
2
1.0011 x = , que es la solucin correcta. Sustituyendo
2
1.0011 x = en la
primera ecuacin llegamos nuevamente a

1
(0.001 10 )/(0.0003 10 ) 3.333.
m m
x = = (1.20)
El factor de escalado 10
m
se cancela, pero hace que la ecuacin del pivote sea de nuevo
la primera, que es la que presenta los problemas.

Para evitar que un rescalado trivial confunda al algoritmo, se introduce en el apartado
siguiente el pivotaje de columna escalada.

Ejercicios
Implemetar el algoritmo anterior con sustitucin hacia delante.

Anlisis Numrico: Matrices y Mtodos directos de resolucin de SEL
______________________________________________________________________
49 Manuel Dez Minguito


Pivotaje de columna escalada

La siguiente tcnica es apropiada para resolver el problema del ejemplo (1.18). El
primer paso es definir un factor de escala
1, ,
max
i ij
j n
s a
=
=

, representativo del tamao


de la fila. Si 0
i
s = para algn i , por los teoremas 6.11 y 6.12 vistos en Burden, se sabe
que el sistema no tiene solucin nica y el procedimiento se detiene. El intercambio de
fila apropiado para obtener ceros en la primera columna (
1 k
E E ) se determina
eligiendo el primer entero k que verifica
1
1
1, ,
max
j
k
j n
k j
a
a
s s
=
=

. El efecto del escalado es


para asegurar que el elemento mayor en cada fila tiene una magnitud relativa unidad
antes de la comparacin para el intercambio entre filas. Adems, al principio del paso de
eliminacin gaussiana, el algoritmo selecciona el pivote que tiene el valor mayor
relativo al tamao de la fila, lo que garantiza que sea a estrategia correcta.

El escalado se realiza slo para la comparacin. El factor de escalado no introduce
errores de redondeo; y ntese que es importante realizar la determinacin de los factores
de escala una vez, por eficiencia computacional.

Algoritmo [Burden y Faires, 1985]: Mtodo de Gauss con sustitucin hacia atrs y
bsqueda pivote de columna escalada
I nput , ,
ij i
n a b
For 1 i = to i n =

1
max
i ij
j n
s a

=
End
I f 0
i
s = then (no existe solucin nica) End
// Proceso de eliminacin gaussiana
For 1 i = to 1 i n =
Find el menor p with i p n and max
pi ji
i j n
p j
a a
s s

=
I f p or 0
pi
a = (no existe solucin nica) Then Break
I f p i then
p i
E E
For 1 j i = + to j n =
/
ji ji ii
m a a =

( )
j ji i j
E m E E
End
End

I f 0
nn
a = (no existe solucin nica) Then Break

// Sustitucin hacia atrs
Anlisis Numrico: Matrices y Mtodos directos de resolucin de SEL
______________________________________________________________________
50 Manuel Dez Minguito
For 1 i = to i n =

1
/
n
i i ij j ii
j i
x b a x a
= +





End
Output
i
x
Break
Los
i
s representan el tamao de la fila, definido como
1
max
i ij
j n
s a

=

%GAUSSI AN ELI MI NATI ON WI TH SCALED PARTI AL PI VOTI NG ALGORI THM 6. 3
%
%To sol ve t he n by n l i near syst em
%
%E1: A( 1, 1) X( 1) + A( 1, 2) X( 2) +. . . + A( 1, n) X( n) = A( 1, n+1)
%E2: A( 2, 1) X( 1) + A( 2, 2) X( 2) +. . . + A( 2, n) X( n) = A( 2, n+1)
% :
% .
%EN: A( n, 1) X( 1) + A( n, 2) X( 2) +. . . + A( n, n) X( n) = A( n, n+1)
%
%I NPUT: number of unknowns and equat i ons n; augment ed
% mat r i x A = ( A( I , J ) ) wher e 1<=I <=n and 1<=J <=n+1.
%
%OUTPUT: sol ut i on x( 1) , x( 2) , . . . , x( n) or a message t hat t he
% l i near syst emhas no uni que sol ut i on.
syms( ' AA' , ' NAME' , ' I NP' , ' OK' , ' N' , ' I ' , ' J ' , ' A' , ' M' ) ;
syms( ' S' , ' NROW' , ' NN' , ' I CHG' , ' I MAX' , ' AMAX' , ' J J ' ) ;
syms( ' I P' , ' J P' , ' TEMP' , ' NCOPY' , ' I 1' , ' J 1' , ' XM' , ' K' ) ;
syms( ' N1' , ' X' , ' N2' , ' SUM' , ' KK' , ' FLAG' , ' OUP' , ' s' ) ;
TRUE = 1;
FALSE = 0;
f pr i nt f ( 1, ' Thi s i s Gauss El i mi nat i on wi t h Scal ed Par t i al
Pi vot i ng. \ n' ) ;
f pr i nt f ( 1, ' The ar r ay wi l l be i nput f r oma t ext f i l e i n t he
or der : \ n' ) ;
f pr i nt f ( 1, ' A( 1, 1) , A( 1, 2) , . . . , A( 1, N+1) , \ n' ) ;
f pr i nt f ( 1, ' A( 2, 1) , A( 2, 2) , . . . , A( 2, N+1) , \ n' ) ;
f pr i nt f ( 1, ' . . . , A( N, 1) , A( N, 2) , . . . , A( N, N+1) \ n\ n' ) ;
f pr i nt f ( 1, ' Pl ace as many ent r i es as desi r ed on each l i ne, but
separ at e ' ) ;
f pr i nt f ( 1, ' ent r i es wi t h\ n' ) ;
f pr i nt f ( 1, ' at l east one bl ank. \ n\ n\ n' ) ;
f pr i nt f ( 1, ' Has t he i nput f i l e been cr eat ed? - ent er Y or N. \ n' ) ;
AA = i nput ( ' ' , ' s' ) ;
i f AA == ' Y' | AA == ' y'
f pr i nt f ( 1, ' I nput t he f i l e name i n t he f or m- dr i ve: \ \ name. ext \ n' ) ;
f pr i nt f ( 1, ' f or exampl e: A: \ \ DATA. DTA\ n' ) ;
NAME = i nput ( ' ' , ' s' ) ;
I NP = f open( NAME, ' r t ' ) ;
OK = FALSE;
whi l e OK == FALSE
f pr i nt f ( 1, ' I nput t he number of equat i ons - an i nt eger . \ n' ) ;
N = i nput ( ' ' ) ;
i f N > 0
A = zer os( N, N+1) ;
X = zer os( 1, N) ;
f or I = 1 : N
f or J = 1 : N+1
Anlisis Numrico: Matrices y Mtodos directos de resolucin de SEL
______________________________________________________________________
51 Manuel Dez Minguito
A( I , J ) = f scanf ( I NP, ' %f ' , 1) ;
end;
end;
OK = TRUE;
f cl ose( I NP) ;
el se f pr i nt f ( 1, ' The number must be a posi t i ve i nt eger . \ n' ) ;
end;
end;
el se
f pr i nt f ( 1, ' The pr ogr amwi l l end so t he i nput f i l e can be
cr eat ed. \ n' ) ;
OK = FALSE;
end;
i f OK == TRUE
M = N+1;
%STEP 1
S = zer os( 1, N) ;
NROW= zer os( 1, N) ;
f or I = 1 : N
S( I ) = abs( A( I , 1) ) ;
%i ni t i al i ze r ow poi nt er
NROW( I ) = I ;
f or J = 1 : N
i f abs( A( I , J ) ) > S( I )
S( I ) = abs( A( I , J ) ) ;
end;
end;
i f S( I ) <= 1. 0e- 20
OK = FALSE;
end;
end;
NN = N- 1;
I CHG = 0;
I = 1;
%STEP 2
%el i mi nat i on pr ocess
whi l e OK == TRUE & I <= NN
%STEP 3
I MAX = NROW( I ) ;
AMAX = abs( A( I MAX, I ) ) / S( I MAX) ;
I MAX = I ;
J J = I +1;
f or I P = J J : N
J P = NROW( I P) ;
TEMP = abs( A( J P, I ) / S( J P) ) ;
i f TEMP > AMAX
AMAX = TEMP;
I MAX = I P;
end;
end;
%STEP 4
%syst emhas no uni que sol ut i on
i f AMAX <= 1. 0e- 20
OK = FALSE;
el se
%STEP 5
%si mul at e r ow i nt er change
i f NROW( I ) ~= NROW( I MAX)
I CHG = I CHG+1;
NCOPY = NROW( I ) ;
NROW( I ) = NROW( I MAX) ;
Anlisis Numrico: Matrices y Mtodos directos de resolucin de SEL
______________________________________________________________________
52 Manuel Dez Minguito
NROW( I MAX) = NCOPY;
end;
%STEP 6
I 1 = NROW( I ) ;
f or J = J J : N
J 1 = NROW( J ) ;
%STEP 7
XM = A( J 1, I ) / A( I 1, I ) ;
%STEP 8
f or K = J J : M
A( J 1, K) = A( J 1, K) - XM*A( I 1, K) ;
end;
%Mul t i pl i er XM coul d be saved i n A( J 1, I )
A( J 1, I ) = 0;
end;
end;
I = I +1;
end;
i f OK == TRUE
%STEP 9
N1 = NROW( N) ;
i f abs( A( N1, N) ) <= 1. 0e- 20
OK = FALSE;
%syst emhas no uni que sol ut i on
el se
%STEP 10
%st ar t backwar d subst i t ut i on
X( N) = A( N1, M) / A( N1, N) ;
%STEP 11
f or K = 1 : NN
I = NN- K+1;
J J = I +1;
N2 = NROW( I ) ;
SUM = 0;
f or KK = J J : N
SUM = SUM- A( N2, KK) *X( KK) ;
end;
X( I ) = ( A( N2, M) +SUM) / A( N2, I ) ;
end;
%STEP 12
%pr ocedur e compl et ed successf ul l y
f pr i nt f ( 1, ' Choi ce of out put met hod: \ n' ) ;
f pr i nt f ( 1, ' 1. Out put t o scr een\ n' ) ;
f pr i nt f ( 1, ' 2. Out put t o t ext f i l e\ n' ) ;
f pr i nt f ( 1, ' Pl ease ent er 1 or 2\ n' ) ;
FLAG = i nput ( ' ' ) ;
i f FLAG == 2
f pr i nt f ( 1, ' I nput t he f i l e name i n t he f or m- dr i ve: \ \ name. ext \ n' ) ;
f pr i nt f ( 1, ' For exampl e A: \ \ OUTPUT. DTA\ n' ) ;
NAME = i nput ( ' ' , ' s' ) ;
OUP = f open( NAME, ' wt ' ) ;
el se
OUP = 1;
end;
f pr i nt f ( OUP, ' GAUSSI AN ELI MI NATI ON WI TH SCALED PARTI AL
PI VOTI NG\ n\ n' ) ;
f pr i nt f ( OUP, ' The r educed syst em- out put by r ows: \ n' ) ;
f or I = 1 : N
f or J = 1 : M
f pr i nt f ( OUP, ' %11. 8f ' , A( I , J ) ) ;
end;
Anlisis Numrico: Matrices y Mtodos directos de resolucin de SEL
______________________________________________________________________
53 Manuel Dez Minguito
f pr i nt f ( OUP, ' \ n' ) ;
end;
f pr i nt f ( OUP, ' \ n\ nHas sol ut i on vect or : \ n' ) ;
f or I = 1 : N
f pr i nt f ( OUP, ' %11. 8f ' , X( I ) ) ;
end;
f pr i nt f ( OUP, ' \ nwi t h %3d r ow i nt er change( s) \ n' , I CHG) ;
f pr i nt f ( OUP, ' \ nThe r ows have been l ogi cal l y r e- or der ed t o: \ n' ) ;
f or I = 1 : N
f pr i nt f ( OUP, ' %2d' , NROW( I ) ) ;
end;
f pr i nt f ( OUP, ' \ n' ) ;
i f OUP ~= 1
f cl ose( OUP) ;
f pr i nt f ( 1, ' Out put f i l e %s cr eat ed successf ul l y \ n' , NAME) ;
end;
end;
end;
i f OK == FALSE
f pr i nt f ( 1, ' Syst emhas no uni que sol ut i on\ n' ) ;
end;
end;

Algoritmo 8. Mtodo de Gauss con sustitucin hacia atrs y bsqueda pivote de columna escalada


Orden del algoritmo
El pivotaje de columna escalada slo requiere efectuar comparaciones, cuyo tiempo
computacional es similar a de las sumas y restas, y divisiones. En total agrega [Burden y
Faires, 1985]

.
3
( 1)
2
( 1)
1
2
comp
n n
n n

=
+
=


operaciones, la cuales, comparadas con el nmero requerido para un algoritmo de
eliminacin de gauss, son despreciables para n grandes. Este tipo de pivotaje no
aumenta de forma significativa el tiempo invertido para resolver un SEL.

Puede ocurrir que el sistema sea especialmente rebelde, de tal forma que se requiera
calcular los factores de escala dada vez que se realiza un intercambio de filas. En este
caso, lo recomendable es emplear el pivotaje mximo o completo, que slo requiere el
siguiente nmero de compraciones

.
( 1)(2 5)
.
6
comp
n n n +
=



Ntese que calcular los
i
s cada vez que se realiza un intercambio de filas graba
considerablemente el algoritmo (
3
/6 n ).
Anlisis Numrico: Matrices y Mtodos directos de resolucin de SEL
______________________________________________________________________
54 Manuel Dez Minguito
Factorizacin de Matrices

Supngase que
4
( ) A M R puede factorizarse en el producto dos matrices triangulares:
una inferior,
( )
ij
n n
L l

= , y otra superior,
( )
ij
n n
U u

= , ambas , ( )
n
L U M R . Si es as,
diremos que A tiene una descomposicin o factorizacin LU . No obstante, hay que
decir que no toda matriz puede descomponerse de esta forma. Vanse los teoremas
dados en el apartado de fundamentos. Entonces, para resolver el sistema
Ax LUx b = = , donde
1
, , ( )
n
x b y M

R , es posible resolverlo en dos pasos
1. Ly b = para y , por el (v.gr.) mtodo de Gauss con sustitucin hacia delante
2. Ux y = para x , por el (v.gr) mtodo de Gauss con sustitucin hacia atrs

Los anlisis previos realizados en la seccin anterior indican que resolver sistemas
triangulares es sencillo. Para determinar sus coeficientes emplearemos la igualdad
A LU = , desarrollando el producto de ambas matrices. Puesto que A tiene 16
coeficientes y la suma de coeficientes incgnita de las matrices L y U son 20, se
requieren 4 condiciones adicionales. Por ejemplo, se puede considerar que 1
ii
l =
(mtodo de Doolittle) o 1
ii
u = (mtodo de Crout) o
ii ii
u l = (mtodo de Choleski),
para todo 1 i n .

Antes de presentar, de forma algo ms formal, el algoritmo de descomposicin LU ,
puede resultar til dar un ejemplo del mismo, para as familiarizarse con el mismo.
Supongamos una matriz
4
( ) A M R :

6 2 1 1
2 4 1 0
1 1 4 1
1 0 1 3
A






(1.21)
Las matrices triangular superior y triangular inferior se definen como sigue

11 12 13 14 11
22 23 24
21 22
33 34
31 32 33
44
41 42 43 44
0 0 0
0
0 0
,
0 0
0
0 0 0
u u u u l
u u u
l l
L U
u u
l l l
u
l l l l





= =







(1.22)
Supngase adems la condicin de Doolittle
11 22 33 44
1 l l l l = = = = . El producto de la
primera fila de L con las columnas de U proporciona directamente la primera fila
completa de coeficientes de U :

11 11 11
12
13
14
6 6
2
1
1.
l u u
u
u
u
= =
=
=
=
(1.23)
La primera columna de L multiplicada por las diferentes filas de U dan lugar a
Anlisis Numrico: Matrices y Mtodos directos de resolucin de SEL
______________________________________________________________________
55 Manuel Dez Minguito

21 11 21
31
41
2 1/3
1/3
1/6.
l u l
l
l
= =
=
=
(1.24)
Repitiendo el mismo proceso anterior pero con las segundas filas y columnas, en este
orden, de L se llega a

21 12 22 22 22
23
24
4 10/3
2/3
1/3
l u l u u
u
u
+ = =
=
=
(1.25)
y

31 12 32 22 32
42
1 1/5
1/10,
l u l u l
l
+ = =
=
(1.26)

respectivamente. Y as, sucesivamente, se determinaran todos los coeficientes de las
matrices triangulares, resultando

1 0 0 0 6 2 1 1
1/3 1 0 0 0 10/3 2/3 1/3
, .
1/6 1/5 1 0 0 0 37/10 9/10
1/6 1/10 9/37 1 0 0 0 191/74
L U












= =















(1.27)


Para derivar el algoritmo general para la factorizacin LU partimos de la frmula del
producto de matrices [Kincaid y Cheney, 1990]

min( , )
1 1
i j n
ij ik kj ik kj
k k
a l u l u
= =
= =

(1.28)
donde en la segunda igualdad hemos hecho uso del hecho que 0
ik
l = para k i > y que
0
kj
u = para k j > .
Cada paso de este proceso determina una nueva fila de U y una nueva columna de L,
como se ha podido comprobar en el ejemplo (1.21). En el paso q -simo, se puede
asumir que las filas 1, 2, , 1 q han sido ya calculadas en U y que las columnas
1, 2, , 1 q se han calculado en L. Para i j q = = se obtiene

1
1
.
q
qq qq qq qk kq
k
a l u l u

=
= +

(1.29)
Luego, si
qq
l o
qq
u han sido especificados, se emplea la ecuacin (1.29) para determinar
la otra. Con
qq
l y
qq
u conocidas , se emplea la ecuacin (1.29) para escribir para la q -
sima fila (q i = ) y la q -sima columna
( )
1
1
1
q
qj qq qj qk kj
k
a l u l u q j n

=
= + +

(1.30)
( )
1
1
1 .
q
iq qq qq ik kq
k
a l u l u q i n

=
= + +

(1.31)
Anlisis Numrico: Matrices y Mtodos directos de resolucin de SEL
______________________________________________________________________
56 Manuel Dez Minguito
Si 0
qq
l la ecuacin (1.30) puede ser usada para obtener los elementos
qj
u . Del forma
similar, si los coeficientes 0
qq
u , a partir de ellos puede determinarse mediante la
ecuacin (1.31) los elementos
iq
l . Esta condicin es porque el mtodo implica
divisiones por
qq
l y
qq
u , por lo que si son nulos el clculo no podr completarse
(excepto en casos muy concretos en los que de algn modo se elimine esa posible
divergencia).

Evidentemente, no cualquier matriz tiene una representacin LU . Las condiciones para
que una matriz dada ( )
n
A M R , asociada a un sistema Ax b = , pueda descomponerse
en el producto LU se dan en los tres teoremas siguientes. Lejos de tratarse de mero
formalismo matemtico, son tiles para realizar los chequeos pertinentes al inicio del
programa a fin de que el programa funcione correctamente.

Teorema: Descomposicin LU (i)
Si un procedimiento estndar de eliminacin de Gauss que resuelve el sistema Ax b = ,
donde ( )
n
A M R y
1
, ( )
n
b x M

R , se ha llevado a cabo sin permutacin de filas,
entonces la matriz A admite una descomposicin en producto de una matriz triangular
inferior L y triangular superior U ( , ( )
n
L U M R ):
, A LU = (1.32)
siendo la matriz U la determinada mediante el mtodo de eliminacin de Gauss con
sustitucin hacia atrs y los coeficientes de la diagonal principal de L son 1
ii
l =

Teorema: Descomposicin LU (ii)
Si todos los menores principales
1
, ,
n
A A de una matriz ( )
n
A M R son no-singulares
(det( ) 0
i
A ) , entonces A tiene una descomposicin LU . (1.33)

Teorema: Factorizacin de Choleski
Si ( )
n
A M R es una matriz simtrica y definida positiva, tiene una nica factorizacin
de la forma

T
A LL = (1.34)
en la cual L es una matriz diagonal inferior con coeficientes en la diagonal positivos.
Ntese que
T
L es una matriz diagonal superior, por un momento llammosla
( )
T
ij
n n
L U u

= = , verificndose
ii ii
u l = (condicin de Choleski).

Corolario: Factorizacin y matrices diagonalmente dominantes
Toda matriz diagonalmente dominante es no singular y tiene una descomposicin LU .

Ntese que en la prctica, para asegurarnos de que una matriz ( )
n
A M R admite una
descomposicin LU unvoca, basta con comprobar que es definida positiva o que es
diagonalmente dominante. En caso de no serlo (es condicin suficiente) no podemos
asegurar si tiene o no tiene descomposicin.

Anlisis Numrico: Matrices y Mtodos directos de resolucin de SEL
______________________________________________________________________
57 Manuel Dez Minguito
Mtodo de Doolittle

Presentamos a continuacin el algoritmo de Doolittle para la descomposicin LU ,
admitiendo que existe y es nica, de una matriz ( )
n
A M R dada asociada a un SEL.
Recordemos que Dolittle supona 1
ii
l = , , 1 i i n , para suplir el exceso de
incgnitas introducidas al factorizar A en dos nuevas matrices. El algoritmo es el
siguiente:


Algoritmo[Kincaid y Cheney, 1990]: Factorizacin LU por el mtodo de Doolittle
I nput ,
ij
n a
For 1 k = to k n =
1
kk
l
For j k = to k n =

1
1
/
k
kj kj ks sj kk
s
u a l u l


End
For 1 i k = + to k n =

1
1
/
k
ik ik is sk kk
s
l a l u u


End
End
Output ,
ij ij
l u
Break
Es importante aadir al inicio del programa los chequeos necesarios, proporcionados
por los teoremas anteriores, a fin de que est garantizada la existencia y unicidad de la
descomposicin LU . Por ejemplo, se puede comprobar que la matriz A es
diagonalmente dominante.


Slo se muestra la parte de factorizacin de la matriz A en el producto de LU . El
algoritmo completo para la resolucin del sistema debe ser completado con los pasos
indicados al inicio de la seccin.
%DI RECT FACTORI ZATI ON ALGORI THM 6. 4
%
%To f act or t he n by n mat r i x A = ( A( I , J ) ) i nt o t he pr oduct of t he
%l ower t r i angul ar mat r i x L = ( L( I , J ) ) and t he upper t r i angul ar
%mat r i x U = ( U( I , J ) ) , t hat i s A = LU, wher e t he mai n di agonal of
%ei t her L or U consi st s of al l ones:
%
%I NPUT: di mensi on n; t he ent r i es A( I , J ) , 1<=I , J <=n, of A;
% t he di agonal L( 1, 1) , . . . , L( N, N) of L or t he di agonal
% U( 1, 1) , . . . , U( N, N) of U.
%
%OUTPUT: t he ent r i es L( I , J ) , 1<=J <=I , 1<=I <=n of L and t he ent r i es
% U( I , J ) , I <=J <=n, 1<=I <=n of U.
syms( ' AA' , ' NAME' , ' I NP' , ' OK' , ' N' , ' I ' , ' J ' , ' A' ) ;
syms( ' FLAG' , ' I SW' , ' XL' , ' M' , ' KK' , ' S' , ' K' , ' J J ' ) ;
syms( ' SS' , ' OUP' , ' s' ) ;
TRUE = 1;
Anlisis Numrico: Matrices y Mtodos directos de resolucin de SEL
______________________________________________________________________
58 Manuel Dez Minguito
FALSE = 0;
f pr i nt f ( 1, ' Thi s i s t he gener al LU f act or i zat i on met hod. \ n' ) ;
f pr i nt f ( 1, ' The ar r ay wi l l be i nput f r oma t ext f i l e i n t he
or der : \ n' ) ;
f pr i nt f ( 1, ' A( 1, 1) , A( 1, 2) , . . . , A( 1, N) , \ n' )
f pr i nt f ( 1, ' A( 2, 1) , A( 2, 2) , . . . , A( 2, N) , \ n' ) ;
f pr i nt f ( 1, ' . . . , A( N, 1) , A( N, 2) , . . . , A( N, N) \ n\ n' ) ;
f pr i nt f ( 1, ' Pl ace as many ent r i es as desi r ed on each l i ne, but
separ at e\ n' ) ;
f pr i nt f ( 1, ' ent r i es wi t h\ n' ) ;
f pr i nt f ( 1, ' at l east one bl ank. \ n\ n\ n' ) ;
f pr i nt f ( 1, ' Has t he i nput f i l e been cr eat ed? - ent er Y or N. \ n' ) ;
AA = i nput ( ' ' , ' s' ) ;
i f AA == ' Y' | AA == ' y'
f pr i nt f ( 1, ' I nput t he f i l e name i n t he f or m- dr i ve: \ \ name. ext \ n' ) ;
f pr i nt f ( 1, ' f or exampl e: A: \ \ DATA. DTA\ n' ) ;
NAME = i nput ( ' ' , ' s' ) ;
I NP = f open( NAME, ' r t ' ) ;
OK = FALSE;
whi l e OK == FALSE
f pr i nt f ( 1, ' I nput t he di mensi on n - an i nt eger . \ n' ) ;
N = i nput ( ' ' ) ;
i f N > 0
A = zer os( N, N) ;
XL = zer os( 1, N) ;
f or I = 1 : N
f or J = 1 : N
A( I , J ) = f scanf ( I NP, ' %f ' , 1) ;
end;
end;
OK = TRUE;
f cl ose( I NP) ;
el se f pr i nt f ( 1, ' The number must be a posi t i ve i nt eger . \ n' ) ;
end;
end;
f pr i nt f ( 1, ' Choi ce of di agonal s: \ n' ) ;
f pr i nt f ( 1, ' 1. Di agonal of L consi st s of ones\ n' ) ;
f pr i nt f ( 1, ' 2. Di agonal of U consi st s of ones\ n' ) ;
f pr i nt f ( 1, ' Pl ease ent er 1 or 2. \ n' ) ;
FLAG = i nput ( ' ' ) ;
i f FLAG == 1
I SW= 0;
el se
I SW= 1;
end
el se
f pr i nt f ( 1, ' The pr ogr amwi l l end so t he i nput f i l e can be
cr eat ed. \ n' ) ;
OK = FALSE;
end;
i f OK == TRUE
f or I = 1 : N
XL( I ) = 1;
end;
%STEP 1
i f abs( A( 1, 1) ) <= 1. 0e- 20
OK = FALSE;
el se
%t he ent r i es of L bel ow t he mai n di agonal wi l l be pl aced
%i n t he cor r espondi ng ent r i es of A; t he ent r i es of U
%above t he mai n di agonal wi l l be pl aced i n t he
Anlisis Numrico: Matrices y Mtodos directos de resolucin de SEL
______________________________________________________________________
59 Manuel Dez Minguito
%cor r espondi ng ent r i es of A; t he mai n di agonal whi ch
%was not i nput wi l l become t he mai n di agonal of A;
%t he i nput mai n di agonal of L or U i s,
%of cour se, pl aced i n XL
A( 1, 1) = A( 1, 1) / XL( 1) ;
%STEP 2
f or J = 2 : N
i f I SW== 0
%f i r st r ow of U
A( 1, J ) = A( 1, J ) / XL( 1) ;
%f i r st col umn of L
A( J , 1) = A( J , 1) / A( 1, 1) ;
el se
%f i r st r ow of U
A( 1, J ) = A( 1, J ) / A( 1, 1) ;
%f i r st col umn of L
A( J , 1) = A( J , 1) / XL( 1) ;
end;
end;
%STEP 3
M = N- 1;
I = 2;
whi l e I <= M & OK == TRUE
%STEP 4
KK = I - 1;
S = 0;
f or K = 1 : KK
S = S- A( I , K) *A( K, I ) ;
end;
A( I , I ) = ( A( I , I ) +S) / XL( I ) ;
i f abs( A( I , I ) ) <= 1. 0e- 20
OK = FALSE;
el se
%STEP 5
J J = I +1;
f or J = J J : N
SS = 0;
S = 0;
f or K = 1 : KK
SS = SS- A( I , K) *A( K, J ) ;
S = S- A( J , K) *A( K, I ) ;
end;
i f I SW== 0
%I t h r ow of U
A( I , J ) = ( A( I , J ) +SS) / XL( I ) ;
%I t h col umn of L
A( J , I ) = ( A( J , I ) +S) / A( I , I ) ;
el se
%I t h r ow of U
A( I , J ) = ( A( I , J ) +SS) / A( I , I ) ;
%I t h col umn of L
A( J , I ) = ( A( J , I ) +S) / XL( I ) ;
end;
end;
end;
I = I +1;
end;
i f OK == TRUE
%STEP 6
S = 0;
f or K = 1 : M
Anlisis Numrico: Matrices y Mtodos directos de resolucin de SEL
______________________________________________________________________
60 Manuel Dez Minguito
Algoritmo 9. Factorizacin LU por el mtodo de Doolittle.


Mtodo de Crout

El pseudocdigo para llevar a cabo la factorizacin LU segn el mtodo de Crout, que
asume 1
ii
u = , , 1 i i n , es el siguiente:

S = S- A( N, K) *A( K, N) ;
end;
A( N, N) = ( A( N, N) +S) / XL( N) ;
%I f A( N, N) = 0 t hen A = LU but t he mat r i x i s si ngul ar .
%Pr ocess i s compl et e, al l ent r i es of A have been det er mi ned.
%STEP 7
f pr i nt f ( 1, ' Choi ce of out put met hod: \ n' ) ;
f pr i nt f ( 1, ' 1. Out put t o scr een\ n' ) ;
f pr i nt f ( 1, ' 2. Out put t o t ext f i l e\ n' ) ;
f pr i nt f ( 1, ' Pl ease ent er 1 or 2\ n' ) ;
FLAG = i nput ( ' ' ) ;
i f FLAG == 2
f pr i nt f ( 1, ' I nput t he f i l e name i n t he f or m- dr i ve: \ \ name. ext \ n' ) ;
f pr i nt f ( 1, ' For exampl e A: \ \ OUTPUT. DTA\ n' ) ;
NAME = i nput ( ' ' , ' s' ) ;
OUP = f open( NAME, ' wt ' ) ;
el se
OUP = 1;
end;
f pr i nt f ( OUP, ' GENERAL LU FACTORI ZATI ON\ n\ n' ) ;
i f I SW== 0
f pr i nt f ( OUP, ' The di agonal of L consi st s of al l ent r i es = 1. 0\ n' ) ;
el se
f pr i nt f ( OUP, ' The di agonal of U consi st s of al l ent r i es = 1. 0\ n' ) ;
end;
f pr i nt f ( OUP, ' \ nEnt r i es of L bel ow/ on di agonal and ent r i es of U
above' ) ;
f pr i nt f ( OUP, ' / on di agonal \ n' ) ;
f pr i nt f ( OUP, ' - out put by r ows i n over wr i t e f or mat : \ n' ) ;
f or I = 1 : N
f or J = 1 : N
f pr i nt f ( OUP, ' %11. 8f ' , A( I , J ) ) ;
end;
f pr i nt f ( OUP, ' \ n' ) ;
end;
i f OUP ~= 1
f cl ose( OUP) ;
f pr i nt f ( 1, ' Out put f i l e %s cr eat ed successf ul l y \ n' , NAME) ;
end;
end;
end;
i f OK == FALSE
f pr i nt f ( 1, ' The mat r i x does not have an LU f act or i zat i on. \ n' ) ;
end;
end;

Algoritmo[Kincaid y Cheney, 1990]: Factorizacin LU por el mtodo de Crout
Anlisis Numrico: Matrices y Mtodos directos de resolucin de SEL
______________________________________________________________________
61 Manuel Dez Minguito
I nput ,
ij
n a
For 1 k = to k n =
1
kk
u
For i k = to i n =

1
1
/
k
ik ik is sk kk
s
l a l u u


End
For 1 j k = + to j n =

1
1
/
k
kj kj ks sj kk
s
u a l u l


End

End
Output ,
ij ij
l u
Break
Es importante aadir al inicio del programa los chequeos necesarios, proporcionados
por los teoremas anteriores, a fin de que est garantizada la existencia y unicidad de la
descomposicin LU . Por ejemplo, se puede comprobar que la matriz A es definida
positiva.

Slo se muestra la parte de factorizacin de la matriz A en el producto de LU . El
algoritmo completo para la resolucin del sistema debe ser completado con los pasos
indicados al inicio de la seccin, a saber, determinar Lz b = y, seguidamente, Ux z = ,
siendo
n
z R .

%CROUT FACTORI ZATI ON FOR TRI DI AGONAL LI NEAR SYSTEMS ALGORI THM 6. 7
%
%To sol ve t he n x n l i near syst em
%
%E1: A( 1, 1) X( 1) + A( 1, 2) X( 2) = A( 1, n+1)
%E2: A( 2, 1) X( 1) + A( 2, 2) X( 2) + A( 2, 3) X( 3) = A( 2, n+1)
%:
%.
%E( n) : A( n, n- 1) X( n- 1) + A( n, n) X( n) = A( n, n+1)
%
%I NPUT: t he di mensi on n; t he ent r i es of A.
%
%OUTPUT: t he sol ut i on X( 1) , . . . , X( N) .
syms( ' AA' , ' OK' , ' NAME' , ' I NP' , ' N' , ' I ' , ' A' , ' B' , ' NN' ) ;
syms( ' C' , ' BB' , ' Z' , ' X' , ' I I ' , ' FLAG' , ' OUP' , ' s' ) ;
TRUE = 1;
FALSE = 0;
f pr i nt f ( 1, ' Thi s i s Cr out Met hod f or t r i di agonal l i near syst ems. \ n' ) ;
f pr i nt f ( 1, ' The ar r ay wi l l be i nput f r oma t ext f i l e i n t he
or der : \ n' ) ;
f pr i nt f ( 1, ' al l di agonal ent r i es, al l l ower sub- di agonal ent r i es, al l
' ) ;
f pr i nt f ( 1, ' upper sub- di agonal \ n' ) ;
f pr i nt f ( 1, ' ent r i es, i nhomogeneous t er m. \ n\ n' ) ;
f pr i nt f ( 1, ' Pl ace as many ent r i es as desi r ed on each l i ne, but
separ at e ' ) ;
f pr i nt f ( 1, ' ent r i es wi t h\ n' ) ;
f pr i nt f ( 1, ' at l east one bl ank. \ n\ n\ n' ) ;
Anlisis Numrico: Matrices y Mtodos directos de resolucin de SEL
______________________________________________________________________
62 Manuel Dez Minguito
f pr i nt f ( 1, ' Has t he i nput f i l e been cr eat ed? - ent er Y or N. \ n' ) ;
AA = i nput ( ' ' , ' s' ) ;
OK = FALSE;
i f AA == ' Y' | AA == ' y'
f pr i nt f ( 1, ' I nput t he f i l e name i n t he f or m- dr i ve: \ \ name. ext \ n' ) ;
f pr i nt f ( 1, ' f or exampl e: A: \ \ DATA. DTA\ n' ) ;
NAME = i nput ( ' ' , ' s' ) ;
I NP = f open( NAME, ' r t ' ) ;
OK = FALSE;
whi l e OK == FALSE
f pr i nt f ( 1, ' I nput t he number of equat i ons - an i nt eger . \ n' ) ;
N = i nput ( ' ' ) ;
i f N > 0
A = zer os( 1, N) ;
B = zer os( 1, N) ;
C = zer os( 1, N) ;
BB = zer os( 1, N) ;
X = zer os( 1, N) ;
Z = zer os( 1, N) ;
%A( I , I ) i s st or ed i n A( I ) , 1 <= I <= n */
f or I = 1 : N
A( I ) = f scanf ( I NP, ' %f ' , 1) ;
end;
%t he l ower sub- di agonal A( I , I - 1) i s st or ed
%i n B( I ) , 2 <= I <= n */
f or I = 2 : N
B( I ) = f scanf ( I NP, ' %f ' , 1) ;
end;
%t he upper sub- di agonal A( I , I +1) i s st or ed
%i n C( I ) , 1 <= I <= n- 1 */
NN = N- 1;
f or I = 1 : NN
C( I ) = f scanf ( I NP, ' %f ' , 1) ;
end;
%A( I , N+1) i s st or ed i n BB( I ) , 1 <= I <= n */
f or I = 1 : N
BB( I ) = f scanf ( I NP, ' %f ' , 1) ;
end;
OK = TRUE;
f cl ose( I NP) ;
el se
f pr i nt f ( 1, ' The number must be a posi t i ve i nt eger . \ n' ) ;
end;
end;
el se
f pr i nt f ( 1, ' The pr ogr amwi l l end so t he i nput f i l e can be cr eat ed. \ n' )
end;
i f OK == TRUE
%St eps 1- 3 set up and sol ve LZ = B
%STEP 1
%t he ent r i es of U over wr i t e C and t he ent r i es of L over wr i t e A
C( 1) = C( 1) / A( 1) ;
Z( 1) = BB( 1) / A( 1) ;
%STEP 2
f or I = 2 : NN
A( I ) = A( I ) - B( I ) *C( I - 1) ;
C( I ) = C( I ) / A( I ) ;
Z( I ) = ( BB( I ) - B( I ) *Z( I - 1) ) / A( I ) ;
end;
%STEP 3
A( N) = A( N) - B( N) *C( N- 1) ;
Anlisis Numrico: Matrices y Mtodos directos de resolucin de SEL
______________________________________________________________________
63 Manuel Dez Minguito
Algoritmo 10. Factorizacin LU segn el mtodo de Crout

Mtodo de Choleski

Cuando
T
U L = , as que
ii ii
l u = , 1 i i n , el algoritmo se denomina mtodo de
Choleski. La factorizacin de A en el producto de LU exige que la matriz A sea
simtrica y definida positiva.


Z( N) = ( BB( N) - B( N) *Z( N- 1) ) / A( N) ;
%STEP 4
%STEPS 4, 5 sol ve UX = Z
X( N) = Z( N) ;
%STEP 5
f or I I = 1 : NN
I = NN- I I +1;
X( I ) = Z( I ) - C( I ) *X( I +1) ;
end;
%STEP 6
f pr i nt f ( 1, ' Choi ce of out put met hod: \ n' ) ;
f pr i nt f ( 1, ' 1. Out put t o scr een\ n' ) ;
f pr i nt f ( 1, ' 2. Out put t o t ext f i l e\ n' ) ;
f pr i nt f ( 1, ' Pl ease ent er 1 or 2. \ n' ) ;
FLAG = i nput ( ' ' ) ;
i f FLAG == 2
f pr i nt f ( 1, ' I nput t he f i l e name i n t he f or m- dr i ve: \ \ name. ext \ n' ) ;
f pr i nt f ( 1, ' f or exampl e: A: \ \ OUTPUT. DTA\ n' ) ;
NAME = i nput ( ' ' , ' s' ) ;
OUP = f open( NAME, ' wt ' ) ;
el se
OUP = 1;
end;
f pr i nt f ( OUP, ' CROUT METHOD FOR TRI DI AGONAL LI NEAR SYSTEMS\ n\ n' ) ;
f pr i nt f ( OUP, ' The sol ut i on i s\ n' ) ;
f or I = 1 : N
f pr i nt f ( OUP, ' %12. 8f ' , X( I ) ) ;
end;
f pr i nt f ( OUP, ' \ n' ) ;
i f OUP ~= 1
f cl ose( OUP) ;
f pr i nt f ( 1, ' Out put f i l e %s cr eat ed successf ul l y \ n' , NAME) ;
end;
end;


Algoritmo[Kincaid y Cheney, 1990]: Factorizacin LU por el mtodo de Choleski
I nput ,
ij
n a
For 1 k = to k n =

1/2
1
2
1
k
kk kk ks
s
l a l


For 1 i k = + to i n =
Anlisis Numrico: Matrices y Mtodos directos de resolucin de SEL
______________________________________________________________________
64 Manuel Dez Minguito

1
1
/
k
ij ik is ks kk
s
l a l u l


End

End

Output
ij
l
Break
T
U L = , luego las entradas verifican
ij ji
u l =

Es importante aadir al inicio del programa los chequeos necesarios, proporcionados
por los teoremas anteriores, a fin de que est garantizada la existencia y unicidad de la
descomposicin LU .

Slo se muestra la parte de factorizacin de la matriz A en el producto de LU . El
algoritmo completo para la resolucin del sistema debe ser completado con los pasos
indicados al inicio de la seccin.

El algoritmo del mtodo de Choleski presenta poca sensibilidad a los errores de
redondeo.
%CHOLESKI ' S ALGORI THM 6. 6
%
%To f act or t he posi t i ve def i ni t e n by n mat r i x A i nt o LL**T,
%wher e L i s l ower t r i angul ar .
%
%I NPUT: t he di mensi on n; ent r i es A( I , J ) , 1<=I , J <=n of A.
%
%OUTPUT: t he ent r i es L( I , J ) , 1<=J <=I , 1<=I <=n of L.
%
syms( ' AA' , ' NAME' , ' I NP' , ' OK' , ' N' , ' I ' , ' J ' , ' A' , ' NN' ) ;
syms( ' KK' , ' S' , ' K' , ' J J ' , ' FLAG' , ' OUP' , ' s' ) ;
TRUE = 1;
FALSE = 0;
f pr i nt f ( 1, ' Thi s i s Chol eski Fact or i zat i on Met hod. \ n' ) ;
f pr i nt f ( 1, ' The ar r ay wi l l be i nput f r oma t ext f i l e i n t he
or der : \ n' ) ;
f pr i nt f ( 1, ' A( 1, 1) , A( 1, 2) , . . . , A( 1, N) , \ n' ) ;
f pr i nt f ( 1, ' A( 2, 1) , A( 2, 2) , . . . , A( 2, N) , \ n' ) ;
f pr i nt f ( 1, ' . . . , A( N, 1) , A( N, 2) , . . . , A( N, N) \ n\ n' ) ;
f pr i nt f ( 1, ' Pl ace as many ent r i es as desi r ed on each l i ne, but
separ at e\ n' ) ;
f pr i nt f ( 1, ' ent r i es wi t h\ n' ) ;
f pr i nt f ( 1, ' at l east one bl ank. \ n\ n\ n' ) ;
f pr i nt f ( 1, ' Has t he i nput f i l e been cr eat ed? - ent er Y or N. \ n' ) ;
AA = i nput ( ' ' , ' s' ) ;
i f AA == ' Y' | AA == ' y'
f pr i nt f ( 1, ' I nput t he f i l e name i n t he f or m- dr i ve: \ \ name. ext \ n' ) ;
f pr i nt f ( 1, ' f or exampl e: A: \ \ DATA. DTA\ n' ) ;
NAME = i nput ( ' ' , ' s' ) ;
I NP = f open( NAME, ' r t ' ) ;
OK = FALSE;
whi l e OK == FALSE
f pr i nt f ( 1, ' I nput t he di mensi on n - an i nt eger . \ n' ) ;
N = i nput ( ' ' ) ;
i f N > 0
Anlisis Numrico: Matrices y Mtodos directos de resolucin de SEL
______________________________________________________________________
65 Manuel Dez Minguito
A = zer os( N, N) ;
f or I = 1 : N
f or J = 1 : N
A( I , J ) = f scanf ( I NP, ' %f ' , 1) ;
end;
end;
OK = TRUE;
f cl ose( I NP) ;
el se f pr i nt f ( 1, ' The number must be a posi t i ve i nt eger . \ n' ) ;
end;
end;
el se
f pr i nt f ( 1, ' The pr ogr amwi l l end so t he i nput f i l e can be
cr eat ed. \ n' ) ;
OK = FALSE;
end;
i f OK == TRUE
%STEP 1
A( 1, 1) = sqr t ( A( 1, 1) ) ;
%STEP 2
f or J = 2 : N
A( J , 1) = A( J , 1) / A( 1, 1) ;
end;
%STEP 3
NN = N- 1;
f or I = 2 : NN
%STEP 4
KK = I - 1;
S = 0;
f or K = 1 : KK
S = S- A( I , K) *A( I , K) ;
end;
A( I , I ) = sqr t ( A( I , I ) +S) ;
%STEP 5
J J = I +1;
f or J = J J : N
S = 0;
KK = I - 1;
f or K = 1 : KK
S = S - A( J , K) *A( I , K) ;
end;
A( J , I ) = ( A( J , I ) +S) / A( I , I ) ;
end;
end;
%STEP 6
S = 0;
f or K = 1 : NN
S = S- A( N, K) *A( N, K) ;
end;
A( N, N) = sqr t ( A( N, N) +S) ;
%STEP 7
f pr i nt f ( 1, ' Choi ce of out put met hod: \ n' ) ;
f pr i nt f ( 1, ' 1. Out put t o scr een\ n' ) ;
f pr i nt f ( 1, ' 2. Out put t o t ext f i l e\ n' ) ;
f pr i nt f ( 1, ' Pl ease ent er 1 or 2. \ n' ) ;
FLAG = i nput ( ' ' ) ;
i f FLAG == 2
f pr i nt f ( 1, ' I nput t he f i l e name i n t he f or m- dr i ve: \ \ name. ext \ n' ) ;
f pr i nt f ( 1, ' f or exampl e: A: \ \ OUTPUT. DTA\ n' ) ;
NAME = i nput ( ' ' , ' s' ) ;
OUP = f open( NAME, ' wt ' ) ;
Anlisis Numrico: Matrices y Mtodos directos de resolucin de SEL
______________________________________________________________________
66 Manuel Dez Minguito
Algoritmo 11. Factorizacin LU segn el mtodo de Choleski


El nmero de operaciones para resolver un sistema de orden n mediante el mtodo de
Choleski es

3 2
3 2
9 2
6
6 7
2
n n n
n n n
n

+
+ +
=
+
=
=




La matriz L y su traspuesta son matrices triangulares, por lo que se resuelven
directamente empleando la sustitucin hacia delante o hacia atrs. Por tanto, la
descomposicin
T
LL , y en general la descomposicin LU , es especialmente eficiente
slo cuando tenemos que resolver la misma ecuacin matricial repetidas veces para
distintos vectores b . Pero incluso si no es as, el nmero de operaciones llega a ser del
orden de la mitad de las requeridas en los mtodos de eliminacin gaussiana, para
rdenes grandes.

Ejercicios
Completar los algoritmos de Crout y Doolittle hasta resolver completamente un SELs
genrico, sgase lo indicado al principio de esta seccin (pag. 345 Burden).



Eleccin de un mtodo para resolver SELs

el se
OUP = 1;
end;
f pr i nt f ( OUP, ' CHOLESKI FACTORI ZATI ON\ n\ n' ) ;
f pr i nt f ( OUP, ' The mat r i x L out put by r ows: \ n' ) ;
f or I = 1 : N
f or J = 1 : I
f pr i nt f ( OUP, ' %12. 8f ' , A( I , J ) ) ;
end;
f pr i nt f ( OUP, ' \ n' ) ;
end;
i f OUP ~= 1
f cl ose( OUP) ;
f pr i nt f ( 1, ' Out put f i l e %s cr eat ed successf ul l y \ n' , NAME) ;
end;
end;


Anlisis Numrico: Matrices y Mtodos directos de resolucin de SEL
______________________________________________________________________
67 Manuel Dez Minguito
No existe un mtodo universal para resolver SELs. El nmero de operaciones es un
criterio importante para tomar la decisin, pero la eleccin depende en gran medida de
la estructura de los SELs. Por ejemplo, un mtodo tipo Crout diseado a medida para
resolver matrices tridiagonales requiere solamente (5 4) n multiplicaciones y
divisiones y 3( 1) n sumas y restas, frente a las
3
6
n
multiplicaciones/divisiones y
3
2
n

sumas/restas de un mtodo de Choleski que no considere la tridiagonalidad de la matriz.
Si de antemano conocemos la estructura de la matriz, esto es, sabemos que las entradas
nulas de la matriz siguen un patrn regular, podemos implementar algoritmos eficientes.
Como vimos en el ejemplo de la motivacin, sistemas de este tipo surgen con frecuencia
a la hora de resolver ecuaciones en derivadas parciales discretizadas en diferencias
finitas. En la Tabla 1 se muestran los nmeros de operaciones requeridas para cada
mtodo.

A falta de ms informacin, y para nmero de ecuaciones elevados 1 n , parece
razonable afirmar que el ms rpido, el que menos operaciones necesita, es el mtodo de
Choleski. Para valores de n moderados, otros mtodos podran ser ms eficientes.


Mtodo Productos/Divisiones Sumas/Restas/Comparaciones
Eliminacin de Gauss
hacia delante (1)
3 2
3
3
n n n +

3 2
2 3 5
6
n n n +

Eliminacin de Gauss
hacia atrs (1)
3 2
3
3
n n n +

3 2
2 3 5
6
n n n +

Gauss-J ordan (1)
3 2
2
2
n n n +

3
2
n n

Hbrido (1)
3 2
2 9 5
6
n n n +

3 2
2 3 5
6
n n n +

Clculo de
1
A

con
Gauss (1)
3
4
3
n n

3 2
8 9
6
n n n +

Clculo de
1
A

con
Gauss-J ordan (1)
3
3
2
n n

3 2
3 4
2
n n n +

Cramer ( 1)( 1)! n n n + + ( 1)( ! 1) n n +
Givens (2)
3
2n

Householder (2)
3
4
3
n


Choleski (3)
3 2
9 2
6
n n n
n
+ +
+
3 2
6 7
2
n n n +

Crout (2)
3
2
3
n


Doolittle (2)
3
2
3
n


Tabla 1. rdenes de los algoritmos.

Anlisis Numrico: Matrices y Mtodos directos de resolucin de SEL
______________________________________________________________________
68 Manuel Dez Minguito
1. Aaden
3
( 1)
2
n n comparaciones y Error! No se pueden crear objetos modificando
cdigos de campo. divisiones por pivotaje de columna escalada.
2. Muestran el total de operaciones, no desglosado.
3. El segundo sumando en Productos/Divisiones es el nmero de raices cuadradas.





Anlisis Numrico: Matrices y Mtodos directos de resolucin de SEL
______________________________________________________________________
69 Manuel Dez Minguito
Bibliografa

Burden, R.L. and Faires, J .D., 1985. Numerical Analysis. PWS-Kent Publishing
Company, Boston, EE. UU.
Conte, S.D. and Boor, C.d., 1980. Elementary Numerical Analysis: An algorithmic
approach. International Series in Pure and Applied Mathematics. McGraw-Hill,
Nueva York, EE. UU.
Gerald, C.F. and Wheatley, P.O., 2000. Anlisis Numrico con Aplicaciones. Pearson
Educacin, Mxico D.F.
Kincaid, D. and Cheney, W., 1990. Numerical Analysis. Brooks/Cole Publishing,
Pacific Grove, California, EE. UU.
Lang, S., 1987. Linear Algebra. Undergraduate Texts in Mathematics. Springer, Nueva
York, EE.UU. .
Molina, J .J .Q., 1996. Ecuaciones Diferenciales, Anlisis Numrico y Mtodos
Matemticos. Editorial Santa Rita, Granada.
O'Connor, J .L.F., 1993. Tecnicas de Clculo para Sistemas de Ecuaciones,
Programacin Lineal y Programacin Entera, Madrid, Espaa.
Ruiz, A., El problema del tapn salino II.

Potrebbero piacerti anche