CN Sistemas Lineales I ,
-
Upload
javier-guajardo-baeza -
Category
Documents
-
view
24 -
download
0
description
Transcript of CN Sistemas Lineales I ,
-
Sistemas de Ecuaciones
Lineales I
Preliminares: Expresion matricial. Dificultades numericas.
Factorizacion LU: Eliminacion Gaussiana. Relacion con la factorizacion LU.
Pivoteo: Estrategia de pivoteo parcial.
Adaptacion a matrices con estructuras particulares: Metodo de Cholesky. Matrices
banda y tridiagonales.
Propagacion de errores: Numero de condicion. Estimacion a posteriori del error.
Calculo Numerico IN1012C/IN1052C/MAT221N - 1 - DMFA Universidad Catolica de la Santsima Concepcion
-
Expresion matricial
Todo sistema de ecuaciones lineales puede escribirse matricialmente:
a11x1 + + a1nxn = b1...
.
.
.
an1x1 + + annxn = bn
Ax = b,
donde
A :=
a11 a1n...
.
.
.
an1 ann
Rnn y b =
b1...
bn
Rn
son los datos y x =
x1...
xn
Rn es el vector de incognitas.
Calculo Numerico IN1012C/IN1052C/MAT221N - 2 - DMFA Universidad Catolica de la Santsima Concepcion
-
Matriz inversa
El sistema de ecuaciones linealesAx = b tiene solucion unica si y solo siA es una
matriz no singular.
Recordemos que una matrizA Rnn es no singular si y solo si se cumple cualquiera
de estas condiciones:
1. A es invertible: A1 Rnn : AA1 = A1A = I ;
2. det(A) 6= 0;
3. todas las filas (y columnas) deA son l.i.: rango(A) = n.
4. 0 no es valor propio deA: 0 / (A).
SiA es no singular, entonces
Ax = b x = A1b.
Sin embargo, en general, no es conveniente calcular la matriz inversaA1 para resolver
un sistema de ecuaciones, pues hacerlo as resulta mucho mas costoso
computacionalmente.
Calculo Numerico IN1012C/IN1052C/MAT221N - 3 - DMFA Universidad Catolica de la Santsima Concepcion
-
Matriz inversa (cont.)
Por el contrario, una manera natural de calcular la inversa de una matrizA Rnn
consiste en resolver n sistemas de ecuaciones lineales. Si llamamos c1, . . . , cn a las
columnas deA1:
A1 =
c1
cn
, c1, . . . , cn Rn,
entoncesAc1
Acn
= A
c1
cn
= AA1 = I =
e1
en
,
donde las columnas e1, . . . , en de I son los vectores de la base canonica de Rn. Por lo
tanto,A1 puede calcularse columna por columna resolviendo:
Aci = ei, i = 1, . . . , n.
Calculo Numerico IN1012C/IN1052C/MAT221N - 4 - DMFA Universidad Catolica de la Santsima Concepcion
-
Dificultades numericas
Los siguientes aspectos deben tenerse en cuenta al disenar un algoritmo para resolver un
sistema de ecuaciones lineales:
Costo operacional. El tiempo de calculo del computador necesario para resolver el
sistema debe ser lo menor posible.
Una medida standard del costo operacional es la cantidad de operaciones aritmeticas
(+, , , /) que requiere un algoritmo. Este usualmente se expresa en flop (floating
point operations).
Costo de almacenamiento. La cantidad de posiciones de memoria que requiere el
computador para ejecutar un algoritmo (representacion de los datos, variables auxiliares,
etc.) tambien debe ser la menor posible.
Precision de los resultados. Los algoritmos deben ser estables, en el sentido de amplificar
lo menos posible los errores de los datos y los de redondeo.
Calculo Numerico IN1012C/IN1052C/MAT221N - 5 - DMFA Universidad Catolica de la Santsima Concepcion
-
Costo operacional
Los sistemas que aparecen en muchas aplicaciones son de gran tamano. Un sistema de
1000 1000 hoy se considera de tamano moderado y en algunas aplicaciones deben
resolverse sistemas de ecuaciones con cientos de miles de incognitas.
Hay metodos que en teora permiten resolver cualquier sistema de ecuaciones lineales,
pero que en la practica requieren tiempos de calculo prohibitivos.
Mal ejemplo: Regla de Cramer. Este procedimiento permite calcular explcitamente la
solucion de un sistemaAx = b mediante:
xi =det(Ai)
det(A), i = 1, . . . , n,
dondeAi es la matriz que se obtiene a partir deA reemplazando en esta su columna
i-esima por el segundo miembro b.
Si los determinantes se calculan mediante la formula recursiva usual de desarrollo por fila
(o por columna), el costo operacional de la Regla de Cramer es de aproximadamente
(n+ 1)! flop.
Calculo Numerico IN1012C/IN1052C/MAT221N - 6 - DMFA Universidad Catolica de la Santsima Concepcion
-
Costo operacional (cont.)
Buen ejemplo: Metodo de Eliminacion Gaussiana. Este procedimiento se basa en el
metodo algebraico de transformaciones elementales. Su costo operacional veremos
que es de aproximadamente23n
3 flop.
Comparacion:
En un computador de 1Gflop (109 flop) por segundo:
n 10 15 20 100 1000 2000
Regla de Cramer
flop 4 107 2 1013 5 1019 10160
tiempo 0.04 s 5.5 horas 1500 anos
Eliminacion Gaussiana
flop 666 2250 5333 7 105 7 108 5 109
tiempo 0. s 0. s 0. s 0 s 0.73 s 4.88 s
Calculo Numerico IN1012C/IN1052C/MAT221N - 7 - DMFA Universidad Catolica de la Santsima Concepcion
-
Costo de almacenamiento
En muchas aplicaciones los sistemas de ecuaciones lineales que deben resolverse
involucran matrices de gran tamano, pero tales que la mayor parte de sus entradas son
nulas.
Estas matrices se denominan dispersas o ralas (en ingles y en MATLAB, sparse) y
existen tecnicas para almacenarlas que solo requieren una cantidad de posiciones de
memoria aproximadamente igual al numero de entradas no nulas de la matriz.
Los metodos algebraicos usuales (por ejemplo el de transformaciones elementales)
requieren modificar la matriz original del sistema y, muchas veces, destruyen el caracter
disperso de la misma.
Para evitar esto, estudiaremos tambien otros procedimientos (metodos iterativos) que no
modifican la matriz del sistema, por lo que resultaran mas convenientes desde el punto de
vista del costo de almacenamiento.
Estos metodos no se basan en calcular la solucion exacta del sistema, sino en construir
iterativamente aproximaciones cada vez mejores de la misma.
Calculo Numerico IN1012C/IN1052C/MAT221N - 8 - DMFA Universidad Catolica de la Santsima Concepcion
-
Precision de los resultados
La resolucion de un sistema de ecuaciones lineales en el computador involucra la
propagacion de errores en los datos y errores de redondeo. Por ello:
1. Hay que disponer de alguna tecnica que permita predecir cuando la resolucion de un
sistema de ecuaciones puede propagar drasticamente estos errores.
2. Hay que disenar metodos numericos estables, que reduzcan la propagacion de los
errores de redondeo tanto como sea posible.
3. Hay que disenar tecnicas computacionales que nos permitan, despues de calcular la
solucion de un sistema de ecuaciones, estimar a posteriori la precision de la solucion
calculada. Es decir, testear si el error con el que se la calculo esta por debajo de una
tolerancia aceptable.
Calculo Numerico IN1012C/IN1052C/MAT221N - 9 - DMFA Universidad Catolica de la Santsima Concepcion
-
Solucion de sistemas con matriz triangular
Dadas
L =
l11 0 0
l21 l22. . .
.
.
.
.
.
....
. . . 0
ln1 ln2 lnn
y U =
u11 u12 u1n
0 u22 u2n...
. . .. . .
.
.
.
0 0 unn
decimos que L es triangular inferior yU es triangular superior.
Dado que
det(L) = l11l22 lnn y det(U) = u11u22 unn,
una matriz triangular es no singular si y solo si sus terminos diagonales son todos no
nulos.
La resolucion de sistemas de ecuaciones lineales con matrices triangulares es muy
sencilla y su costo operacional es bajo.
Calculo Numerico IN1012C/IN1052C/MAT221N - 10 - DMFA Universidad Catolica de la Santsima Concepcion
-
Solucion de sistemas con matriz triangular (cont.)
Consideremos un sistema Lx = b con matriz triangular inferior L. Procedemos por
sustitucion progresiva:
l11x1 = b1 x1 = b1/l11
l21x1 + l22x2 = b2 x2 = (b2 l21x1) /l22...
.
.
.
ln1x1 + + lnnxn = bn xn = (bn ln1x1 lnn1xn1) /lnn
Algoritmo:
Para i = 1, . . . , n xi =1
lii
bi i1
j=1
lijxj
Costo operacional:
ni=1
1 + i1
j=1
2
= n
i=1
(2i 1) = n2 flop.
Calculo Numerico IN1012C/IN1052C/MAT221N - 11 - DMFA Universidad Catolica de la Santsima Concepcion
-
Solucion de sistemas con matriz triangular (cont.)
Ejercicio:
1. Deducir el siguiente algoritmo para resolver un sistemaUx = b con matriz triangular
superiorU :
Para i = n, n 1, . . . , 1 xi =1
uii
bi n
j=i+1
uijxj
2. Calcular su costo operacional.
Calculo Numerico IN1012C/IN1052C/MAT221N - 12 - DMFA Universidad Catolica de la Santsima Concepcion
-
Metodo de Eliminacion Gaussiana (M.E.G.)
El metodo de eliminacion gaussiana consiste en reducir mediante transformaciones
elementales un sistemaAx = b a otro equivalente (es decir, que tenga la misma
solucion), de la forma
Ux = b,
dondeU es una matriz triangular superior. Luego, el sistema resultante se resuelve por
el algoritmo descrito para matrices triangulares.
Denotemos el sistema original porA(1)x = b(1). El proceso empleado consiste en
reemplazar las ecuaciones por combinaciones no triviales de las otras. As, consideremos
la matriz no singularA Rnn y supongamos que el elemento a(1)11 es no nulo.
Consideremos los multiplicadores
mi1 =a(1)i1
a(1)11
, i = 2, . . . , n,
donde a(1)ij donota el elemento que esta en la fila i y columna j de A
(1).
Calculo Numerico IN1012C/IN1052C/MAT221N - 13 - DMFA Universidad Catolica de la Santsima Concepcion
-
Metodo de Eliminacion Gaussiana (cont.)
Es posible eliminar la incognita x1 de la segunda ecuacion en adelante, por simple
sustraccion a la fila i, i = 2, . . . , n, de la primera fila previamente multiplicada pormi1 y
haciendo lo mismo para el vector b:
a(2)ij = a
(1)ij mi1a
(1)1j , i, j = 2, . . . , n,
b(2)i = b
(1)i mi1b
(1)1 , i = 2, . . . , n,
donde b(1)i denota la componente i-esima del vector b
(1).
As se obtiene un sistemaA(2)x = b(2) equivalente al anterior:
a(1)11 a
(1)12 a
(1)13 a
(1)1n
0 a(2)22 a
(2)23 a
(2)2n
0 a(2)32 a
(2)33 a
(2)3n
.
.
....
.
.
....
0 a(2)n2 a
(2)n3 a
(2)nn
x1
x2
x3...
xn
=
b(1)1
b(2)2
b(2)3
.
.
.
b(2)n
Calculo Numerico IN1012C/IN1052C/MAT221N - 14 - DMFA Universidad Catolica de la Santsima Concepcion
-
Metodo de Eliminacion Gaussiana (cont.)
A continuacion, si a(2)22 6= 0, podemos analogamente eliminar la incognita x2 de la
tercera ecuacion en adelante.
Siguiendo con este proceso un numero finito de veces se obtiene el sistema
A(k)x = b(k), 1 k n,
donde la matriz A(k) toma la siguiente forma:
A(k) =
a(1)11 a
(1)12 a
(1)1n
0 a(2)22 a
(2)2n
.
.
.. . .
. . ....
.
.
. 0 a(k)kk a
(k)kn
.
.
....
.
.
....
0 0 a(k)nk a
(k)nn
Para realizar este proceso hemos supuesto que a(i)ii 6= 0, i = 1, . . . , k 1.
Calculo Numerico IN1012C/IN1052C/MAT221N - 15 - DMFA Universidad Catolica de la Santsima Concepcion
-
Metodo de Eliminacion Gaussiana (cont.)
Notemos que para k = n obtenemos el sistema triangular superior
a(1)11 a
(1)12 a
(1)1n
0 a(2)22 a
(2)2n
.
.
.. . .
. . ....
0 0 a(n)nn
x1
x2...
xn
=
b(1)1
b(2)2
.
.
.
b(n)n
Los valores a(k)kk son llamados pivotes y deben ser valores no nulos para
k = 1, . . . , n 1.
Si la matriz originalA es no singular, entonces tambien a(n)nn 6= 0 y el sistema triangular
superior resultante puede resolverse por el algoritmo ya visto:
Para i = n, n 1, . . . , 1 xi =1
a(i)ii
b(i)i
nj=i+1
a(i)ij xj
Calculo Numerico IN1012C/IN1052C/MAT221N - 16 - DMFA Universidad Catolica de la Santsima Concepcion
-
Algoritmo del M.E.G.
Recordemos que en el paso k-esimo
se parte de la siguiente matriz:
a(1)11 a
(1)12 a
(1)1n
0 a(2)22 a
(2)2n
.
.
.. . .
. . ....
.
.
. 0 a(k)kk a
(k)kn
.
.
....
.
.
....
0 0 a(k)nk a
(k)nn
Para k = 1, . . . , n 1
para i = k + 1, . . . , n
mik = a(k)ik /a
(k)kk
para j = k + 1, . . . , n a(k+1)ij = a(k)ij mika(k)kjb(k+1)i = b
(k)i mikb
(k)k
Para i = n, n 1, . . . , 1 xi =1
a(i)ii
b(i)i
nj=i+1
a(i)ij xj
Observacion: El algoritmo no precisa crear los ceros debajo de la diagonal de la matriz,
pues estos luego no se utilizan.
Calculo Numerico IN1012C/IN1052C/MAT221N - 17 - DMFA Universidad Catolica de la Santsima Concepcion
-
Costo Operacional del M.E.G.
Costo del paso de eliminacion:
Para k = 1, . . . , n 1
para i = k + 1, . . . , n
mik = a(k)ik /a
(k)kk
para j = k + 1, . . . , n a(k+1)ij = a(k)ij mika(k)kjb(k+1)i = b
(k)i mikb
(k)k
n1k=1
ni=k+1
1 + n
j=k+1
2
+ 2
=n1k=1
(n k) [2(n k) + 3]
=
(2
3n3 +
1
2n2
7
6n
)flop
Costo de la solucion de sistema triangular superior: n2 flop.
Costo operacional total:
(2
3n3 +
3
2n2
7
6n
)flop.
Calculo Numerico IN1012C/IN1052C/MAT221N - 18 - DMFA Universidad Catolica de la Santsima Concepcion
-
Costo Operacional del M.E.G. (cont.)
n Eliminacion Sist. Triang. Total M.E.G.2
3n3
% Elim % S. T.
10 705 100 805 666 87.58 12.42
20 5510 400 5910 5333 93.23 6.77
30 18415 900 19315 18000 95.34 4.66
40 43420 1600 45020 42666 96.45 3.55
50 84525 2500 87025 83333 97.13 2.87
100 671550 10000 681550 666666 98.53 1.47
200 5353100 40000 5393100 5333333 99.26 0.74
300 18044650 90000 18134650 18000000 99.50 0.50
400 42746200 160000 42906200 42666666 99.63 0.37
500 83457750 250000 83707750 83333333 99.70 0.30
600 144179300 360000 144539300 144000000 99.75 0.25
700 228910850 490000 229400850 228666666 99.79 0.21
800 341652400 640000 342292400 341333333 99.81 0.19
900 486403950 810000 487213950 486000000 99.83 0.17
1000 667165500 1000000 668165500 666666666 99.85 0.15
Calculo Numerico IN1012C/IN1052C/MAT221N - 19 - DMFA Universidad Catolica de la Santsima Concepcion
-
Costo Operacional del M.E.G. (cont.)
Para n grande, los terminos proporcionales a n2 (y a n) resultan despreciables respecto a
los proporcionales a n3.
Por esa razon, el costo operacional del metodo de eliminacion gaussiana se dice que
es de aproximadamente
2
3n3 flop
Notemos que la mayor parte del costo corresponde a la triangularizacion de la matriz:
Para k = 1, . . . , n 1
para i = k + 1, . . . , nmik = a
(k)ik /a
(k)kk
para j = k + 1, . . . , n a(k+1)ij = a(k)ij mika(k)kj
Costo operacional:2
3n3 flop.
Calculo Numerico IN1012C/IN1052C/MAT221N - 20 - DMFA Universidad Catolica de la Santsima Concepcion
-
Factorizacion LU
Ejemplo:
A =
1 3 2
2 8 1
4 6 5
m21 = 2
m31 = 4
1 3 2
0 2 3
0 6 3
m32 = 3
1 3 2
0 2 3
0 0 12
U :=
1 3 2
0 2 3
0 0 12
L :=
1 0 0
m21 1 0
m31 m32 1
=
1 0 0
2 1 0
4 3 1
Notemos que
LU =
1 0 0
2 1 0
4 3 1
1 3 2
0 2 3
0 0 12
=
1 3 2
2 8 1
4 6 5
= A
Calculo Numerico IN1012C/IN1052C/MAT221N - 21 - DMFA Universidad Catolica de la Santsima Concepcion
-
Factorizacion LU (cont.)
Si la matrizA es tal que la etapa de eliminacion del M.E.G. se puede llevar a cabo (es
decir si todos los pivotes a(i)ii 6= 0, i = 1, . . . , n 1), entonces
A = LU ,
donde:
U es la matriz triangular superior que resulta de la eliminacion y
L es la matriz triangular inferior de los multiplicadoresmij :
L =
1 0 0
m21 1. . .
.
.
.
.
.
.. . .
. . . 0
mn1 mnn1 1
Calculo Numerico IN1012C/IN1052C/MAT221N - 22 - DMFA Universidad Catolica de la Santsima Concepcion
-
Solucion de sistemas mediante factorizacion LU
SiA = LU , entonces
Ax = b L(Ux) = b
Ly = b,Ux = y.
Por lo tanto, resolver un sistemaAx = b es equivalente a:
1. resolver Ly = b y, luego,
2. resolverUx = y.
Como estos sistemas son triangulares (inferior y superior, respectivamente), el costo
operacional de resolver los dos sistemas es 2n2 flop.
Factorizar la matrizA = LU consiste simplemente en:
triangularizarA por eliminacion gaussiana y
almacenar la matriz triangular L de multiplicadores.
Por lo tanto, el costo de factorizar la matrizA = LU es 23n3 flop.
Como 2n2 23n3, el costo operacional total para resolver un sistema mediante
factorizacion LU es 23n3 flop.
Calculo Numerico IN1012C/IN1052C/MAT221N - 23 - DMFA Universidad Catolica de la Santsima Concepcion
-
Solucion de sistemas mediante factorizac. LU (cont.)
Muchas veces deben resolverse varios sistemas de ecuaciones con la misma matriz y
distintos segundos miembros b1, . . . , bm (por ejemplo, para calcularA1).
En tal caso, conviene primero factorizar la matrizA = LU (una sola vez!) y luego
resolver los pares de sistemas triangulares para cada segundo miembro: Ly
1 = b1,
Ux1 = y1,
Ly
m = bm,
Uxm = ym.
As, la parte mas costosa del proceso (la factorizacion: 23n3) se hace una sola vez y solo
se repite la parte menos costosa (la solucion de los sistemas triangulares: 2n2).
Hay algoritmos (Crout, Doolitle) que permiten obtener directamente la factorizacion LU
de una matriz, pero el costo es el mismo que el de hacerlo por eliminacion gaussiana.
Calculo Numerico IN1012C/IN1052C/MAT221N - 24 - DMFA Universidad Catolica de la Santsima Concepcion
-
Solucion de sistemas mediante factorizac. LU (cont.)
Algoritmo (por eliminacion gaussiana):
Para k = 1, . . . , n 1
para i = k + 1, . . . , nmik = a
(k)ik /a
(k)kk
para j = k + 1, . . . , n a(k+1)ij = a(k)ij mika(k)kjPara i = 1, . . . , n yi = bi
i1j=1
mijyj
Para i = n, n 1, . . . , 1 xi =1
a(i)ii
yi n
j=i+1
a(i)ij xj
Observacion: La matriz triangular supe-
rior puede calcularse utilizando las mis-
mas posiciones de memoria en las que
inicialmente esta almacenadaA.
A fin de no tener que utilizar una matriz
mas para guardar L, pueden almacenarse
cada multiplicador mij en lugar de la
entrada aij que se hace cero en ese paso.
Esta no es la forma en que procede MAT-
LAB, pues este software no pretende opti-
mizar el costo de almacenamiento.
Sin embargo, hay mucho software que uti-
liza este truco a fin de evitar tener que usar
memoria adicional para almacenar los mul-
tiplicadores.
Calculo Numerico IN1012C/IN1052C/MAT221N - 25 - DMFA Universidad Catolica de la Santsima Concepcion
-
Necesidad del pivoteo
Para k = 1, . . . , n 1
para i = k + 1, . . . , nmik = a
(k)ik /a
(k)kk
para j = k + 1, . . . , n a(k+1)ij = a(k)ij mika(k)kj
El algoritmo de eliminacion gaussiana (o
el de factorizacion LU) solo puede lle-
varse a cabo si todos los pivotes son
no nulos:
a(k)kk 6= 0.
Ejemplo. El sistema de ecuaciones siguiente tiene matriz no singular pues su
determinante es 1: 0 1 1
1 2 3
2 0 1
x1
x2
x3
=
2
4
0
Sin embargo el algoritmo anterior no puede aplicarse pues a11 = 0 y, por lo tanto,
m21 = a(1)21 /a
(1)11 ym31 = a
(1)31 /a
(1)11 no estan definidos.
Calculo Numerico IN1012C/IN1052C/MAT221N - 26 - DMFA Universidad Catolica de la Santsima Concepcion
-
Necesidad del pivoteo (cont.)
Para poder resolver el sistema, debe intercambiarse la primera ecuacion con
cualquiera de las otras de manera de evitar el pivote cero. Por ejemplo, asi:0 1 1
1 2 3
2 0 1
x1
x2
x3
=
2
4
0
1 2 3
0 1 1
2 0 1
x1
x2
x3
=
4
2
0
Por otra parte, puede demostrarse que la estabilidad del metodo de eliminacion
gaussiana en cuanto a propagacion de errores de redondeo se deteriora si los
multiplicadoresmij son numeros muy grandes en modulo.
Una forma de evitar ambos inconvenientes, pivotes nulos y multiplicadores grandes en
modulo, es realizar en cada paso el intercambio de ecuaciones que produzca el pivote
mayor posible en modulo. Esto estrategia se denomina pivoteo parcial.
Calculo Numerico IN1012C/IN1052C/MAT221N - 27 - DMFA Universidad Catolica de la Santsima Concepcion
-
Estrategia de pivoteo parcial
a(1)11 a
(1)12 a
(1)1n
0 a(2)22 a
(2)2n
.
.
.. . .
. . ....
.
.
. 0 a(k)kk a
(k)kn
.
.
....
.
.
....
0 0 a(k)nk a
(k)nn
En el paso k-esimo se revisa el vectora(k)kk
.
.
.
a(k)nk
y se busca la fila l en la que aparece la en-
trada mayor en modulo:
k l n :a(k)lk = max
kin
{a(k)ik } . Luego, si l 6= k, se intercambia esa fila con la k-esima.
Si la matriz es no singular, siempre habra una entrada no nula en ese vector, por lo que
as se evitan los pivotes nulos.
Ademas, despues del intercambio,a(k)kk a(k)ik , i = k, . . . , n. Por lo tanto, los
multiplicadores no pueden pasar de 1 en modulo:
|mik| =a(k)ik /a(k)kk 1, i = k, . . . , n.
Calculo Numerico IN1012C/IN1052C/MAT221N - 28 - DMFA Universidad Catolica de la Santsima Concepcion
-
Matrices de permutacion
Si hay intercambios de filas, las matrices triangulares L yU que se obtienen por el
metodo de eliminacion gaussiana con estrategia de pivoteo parcial, ya no factorizan
aA, sino que factorizan a la matriz que se obtiene despues de aplicar aA todos los
intercambios de filas que tuvieron lugar.
Se llama matriz de permutacion a toda matriz que se obtenga intercambiado filas de I .
Por ejemplo, las siguientes son todas las matrices de permutacion 3 3:1 0 0
0 1 0
0 0 1
1 0 0
0 0 1
0 1 0
0 1 0
1 0 0
0 0 1
0 1 0
0 0 1
1 0 0
0 0 1
0 1 0
1 0 0
0 0 1
1 0 0
0 1 0
Los intercambios de filas de una matriz se obtienen multiplicando a izquierda por una
matriz de permutacion. Por ejemplo:0 1 0
0 0 1
1 0 0
1 2 3
4 5 6
7 8 9
=
4 5 6
7 8 9
1 2 3
Calculo Numerico IN1012C/IN1052C/MAT221N - 29 - DMFA Universidad Catolica de la Santsima Concepcion
-
Factorizacion LU con estrategia de pivoteo parcial
Teorema. SiA es una matriz no singular, entonces existen matrices no singulares L
triangular inferior yU triangular superior y una matriz de permutacion P , tales que
LU = PA.
Estas matrices pueden obtenerse mediante el metodo de eliminacion gaussiana con
estrategia de pivoteo parcial.
Si se debe resolver un sistemaAx = b, se procede as:
Ax = b PAx = Pb L(Ux) = Pb
Ly = Pb,Ux = y.
El metodo de eliminacion gaussiana con estrategia de pivoteo parcial resulta estable
respecto a la propagacion de errores de redondeo.
Calculo Numerico IN1012C/IN1052C/MAT221N - 30 - DMFA Universidad Catolica de la Santsima Concepcion
-
Factorizacion LU con pivoteo en MATLAB
Comando: [L,U]=lu(A)
L es una matriz psicologica-
mente triangular inferior
U es una matriz triangular supe-
rior
L*U = A.
>> A=[1 2 3;4 5 6;7 8 0];
>> [L,U]=lu(A)
L = 0.1429 1.0000 0
0.5714 0.5000 1.0000
1.0000 0 0
U = 7.0000 8.0000 0
0 0.8571 3.0000
0 0 4.5000
>> L*U
ans = 1 2 3
4 5 6
7 8 0
Calculo Numerico IN1012C/IN1052C/MAT221N - 31 - DMFA Universidad Catolica de la Santsima Concepcion
-
Factorizacion LU con pivoteo en MATLAB (cont.)
Comando:
[L,U,P]=lu(A)
L es una matriz triangular inferior
U es una matriz triangular supe-
rior
P es una matriz de permutacion
L*U = P*A.
>> A=[1 2 3;4 5 6;7 8 0];
>> [L,U,P]=lu(A)
L = 1.0000 0 0
0.1429 1.0000 0
0.5714 0.5000 1.0000
U = 7.0000 8.0000 0
0 0.8571 3.0000
0 0 4.5000
P = 0 0 1
1 0 0
0 1 0
Calculo Numerico IN1012C/IN1052C/MAT221N - 32 - DMFA Universidad Catolica de la Santsima Concepcion
-
Factorizacion LU con pivoteo en MATLAB (cont.)
Comando:
[L,U,P]=lu(A)
L es una matriz triangular inferior
U es una matriz triangular supe-
rior
P es una matriz de permutacion
L*U = P*A.
>> L*U
ans = 7 8 0
1 2 3
4 5 6
>> P*A
ans = 7 8 0
1 2 3
4 5 6
Calculo Numerico IN1012C/IN1052C/MAT221N - 33 - DMFA Universidad Catolica de la Santsima Concepcion
-
Matrices banda
Se dice queA = (aij) Rnn es una matriz banda si aij = 0 cuando |i j| ,
con n. Al numero se lo llama el ancho de banda de la matriz.
0 0...
. . .. . .
. . ....
. . .
. . . 0
0. . .
. . . ...
. . .. . .
. . ....
0 0
Las matrices banda son un caso especial de matrices dispersas y, como tales, deben
almacenarse como sparse en MATLAB a fin de reducir el costo de almacenamiento.
Estas matrices aparecen muy habitualmente en las aplicaciones; especialmente en la
resolucion de problemas de valores de contorno para ecuaciones diferenciales.
Calculo Numerico IN1012C/IN1052C/MAT221N - 34 - DMFA Universidad Catolica de la Santsima Concepcion
-
Factorizacion LU de matrices banda
Si una matriz bandaA puede factorizarse LU sin necesidad de pivoteo, entonces las
matrices triangulares L yU tambien son banda con el mismo ancho de banda queA.
A =
0 0...
. . .. . .
.
.
.
. . .
. . ....
0. . .
. . .. . .
.
.
.
.
.
.. . .
. . .. . . 0
0 0
L
0 0
0. . .
. . .. . .
.
.
.
.
.
.. . .
. . .. . . 0
.
.
.. . .
. . . ...
. . .. . .
.
.
.
0 0
U
Por eso se dice que la factorizacion LU sin pivoteo preserva la estructura banda de las
matrices.
Calculo Numerico IN1012C/IN1052C/MAT221N - 35 - DMFA Universidad Catolica de la Santsima Concepcion
-
Matrices tridiagonales
Un caso extremo de matrices banda es el de las matrices tridiagonales ( = 2):
A =
b1 c1 0 0
a2. . .
. . .. . .
.
.
.
0. . .
. . .. . . 0
.
.
.. . .
. . .. . . cn1
0 0 an bn
Rnn
Estas matrices aparecen tambien muy habitualmente, por ejemplo, al interpolar por splines
o al resolver problemas de valores de contorno para ecuaciones diferenciales ordinarias.
Calculo Numerico IN1012C/IN1052C/MAT221N - 36 - DMFA Universidad Catolica de la Santsima Concepcion
-
Factorizacion LU de matrices tridiagonales
Cuando se cumplen las siguientes desigualdades,
|b1| > |c1|,
|bi| |ai|+ |ci|, i = 2, . . . , n 1,
|bn| > |an|,
las matrices tridiagonales pueden factorizarse LU sin necesidad de pivoteo y este
procedimiento resulta estable respecto a la propagacion de errores de redondeo:
A =
1 0 0
2. . .
. . ....
0. . .
. . .. . .
.
.
.
.
.
.. . .
. . .. . . 0
0 0 n 1
L
1 1 0 0
0. . .
. . .. . .
.
.
.
.
.
.. . .
. . .. . . 0
.
.
.. . .
. . . n1
0 0 n
U
Calculo Numerico IN1012C/IN1052C/MAT221N - 37 - DMFA Universidad Catolica de la Santsima Concepcion
-
Las entradas i, i y i de las matrices L yU pueden calcularse muy facilmente:
b1 c1 0 0
a2 b2 c2. . .
.
.
.
0
. . .. . .
. . . 0
.
.
.. . .
. . .. . . cn1
0 0 an bn
=
1 0 0
2 1. . .
.
.
.
0
. . .. . .
. . ....
.
.
.. . .
. . .. . . 0
0 0 n 1
1 1 0 0
0 2 2. . .
.
.
.
.
.
.. . .
. . .. . . 0
.
.
.. . . n1 n1
0 0 n
11 = b1 = 1 = b1
11 = c1 = 1 = c1
21 = a2 = 2 = a2/1
21 + 12 = b2 = 2 = b2 21
12 = c2 = 2 = c2
nn1 = an = n = an/n1
nn1 + 1n = bn = n = bn nn1
Calculo Numerico IN1012C/IN1052C/MAT221N - 38 - DMFA Universidad Catolica de la Santsima Concepcion
-
Factorizacion LU de matrices tridiagonales (cont.)
As obtenemos el siguiente algoritmo (Algoritmo de Thomas):
11 = b1 = 1 = b1
11 = c1 = 1 = c1
21 = a2 = 2 = a2/1
21 + 12 = b2 = 2 = b2 21
12 = c2 = 2 = c2
nn1 = an = n = an/n1
nn1 + 1n = bn = n = bn nn1
1 = b1
Para i = 2, . . . , ni1 = ci1
i = ai/i1
i = bi ii1
Costo operacional:
ni=2
3 = 3(n1) flop
Calculo Numerico IN1012C/IN1052C/MAT221N - 39 - DMFA Universidad Catolica de la Santsima Concepcion
-
Solucion de sistemas con matrices tridiagonales
Al resolver un sistemaAx = d con matrizA tridiagonal, a partir de su factorizacion LU,
Ax = d L(Ux) = d
Ly = d,Ux = y,
los sistemas triangulares tambien pueden resolverse muy facilmente:
1 0 0
2 1. . .
.
.
.
0
. . .. . .
. . ....
.
.
.. . .
. . .. . . 0
0 0 n 1
y1
y2
.
.
.
yn1
yn
=
d1
d2
.
.
.
dn1
dn
y1 = d1
Para i = 2, . . . , n yi = di iyi1Costo operacional:
ni=2
2 = 2(n1) flop
Calculo Numerico IN1012C/IN1052C/MAT221N - 40 - DMFA Universidad Catolica de la Santsima Concepcion
-
Solucion de sistemas con matrices tridiagonales (cont.)
1 1 0 0
0
. . .. . .
. . ....
.
.
.. . .
. . .. . . 0
.
.
.. . . n1 n1
0 0 n
x1
x2
.
.
.
xn1
xn
=
y1
y2
.
.
.
yn1
yn
xn = yn/n
Para i = n 1, . . . , 1 xi = (yi ixi+1) /iCosto operacional:
1+
n1i=1
3 = 1+3(n1) flop
El costo total de resolver un sistema de ecuaciomes con matriz tridiagonal mediante el
algortimo de Thomas es de 3(n 1) + 2(n 1) + 1 + 3n 2 = 8n 7 flop.
Comparese este costo con el del metodo de eliminacion gaussiana aplicado a ciegas sin
sacar provecho de la estructura tridiagonal de la matriz:23n
3.
Por ejemplo, un sistema 1000 1000 cuesta aproximadamente 666 666 666 flop por
M.E.G. y aproximadamente 8 000 flop mediante este algoritmo.
Calculo Numerico IN1012C/IN1052C/MAT221N - 41 - DMFA Universidad Catolica de la Santsima Concepcion
-
Matrices definidas positivas
Una matriz simetricaA Rnn se dice definida positiva si
xtAx > 0 x Rn : x 6= 0.
Estas matrices tambien aparecen muy habitualmente, por ejemplo, al ajustar parametros
de un modelo por cuadrados mnimos o al resolver problemas de valores de contorno para
ecuaciones diferenciales.
Teorema. SeaA Rnn una matriz simetrica. A es definida positiva si y solo si se
cumple cualquiera de las siguientes condiciones:
1. los valores propios deA son todos positivos;
2. los determinantes de las submatrices principales deA son todos positivos;
3. existe una matriz L, triangular inferior y no singular, tal queA = LLt.
Esta ultima propiedad nos dice que si la matriz es simetrica y definida positiva, siempre
puede obtenerse una factorizacion en matrices triangulares sin necesidad de pivoteo.
Ademas, no hace falta calcular la matriz triangular superior, pues es la transpuesta de
la triangular inferior. Veremos que esto reduce el costo operacional a la mitad.
Calculo Numerico IN1012C/IN1052C/MAT221N - 42 - DMFA Universidad Catolica de la Santsima Concepcion
-
Metodo de Cholesky
Se aplica solamente a matrices simetricas y definidas positivas.
Se basa en calcular directamente la matriz L tal queA = LLt.
Se procede como en el caso de matrices tridiagonales y se obtiene el siguiente algoritmo:
Para j = 1, . . . , n
ljj =
ajj j1k=1
l2jk
para i = j + 1, . . . , n lij = 1ljj(aij
j1k=1
likljk
)
El costo operacional es:
nj=1
j1k=1
2 +
ni=j+1
(1 +
j1k=1
2
) 13n
3 flop,
+n races cuadradas.
Calculo Numerico IN1012C/IN1052C/MAT221N - 43 - DMFA Universidad Catolica de la Santsima Concepcion
-
Metodo de Cholesky (cont.)
Para resolver un sistema de ecuacionesAx = b con matriz simetrica y definida
positiva por el metodo de Cholesky, una vez calculada L, se tiene:
Ax = b L(Ltx) = b
Ly = b,Ltx = y.
Para resolver los sistemas Ly = b y Ltx = y, se utiliza el algoritmo que ya conocemos
para matrices triangulares, cuyo costo operacional es de 2n2.
Por lo tanto el costo operacional total del metodo de Cholesky es de 13n3. Vale decir,
aproximadamente la mitad que el del M.E.G.
Ademas, se demuestra que si la matriz es simetrica y definida positiva, los metodos de
factorizacion son estables respecto a la propagacion de errores de redondeo sin
necesidad de estrategia de pivoteo.
En particular, el metodo de Cholesky es estable respecto a la propagacion de errores
de redondeo.
Calculo Numerico IN1012C/IN1052C/MAT221N - 44 - DMFA Universidad Catolica de la Santsima Concepcion
-
Factorizacion de Cholesky en MATLAB
Comando: R=chol(A)
R es una matriz triangular supe-
rior
Rt*R = A.
A =
2 -1 0
-1 2 -1
0 -1 2
>> R=chol(A)
R =
1.4142 -0.7071 0
0 1.2247 -0.8165
0 0 1.1547
>> B=R*R
B =
2.0000 -1.0000 0
-1.0000 2.0000 -1.0000
0 -1.0000 2.0000
Calculo Numerico IN1012C/IN1052C/MAT221N - 45 - DMFA Universidad Catolica de la Santsima Concepcion
-
Propagacion de errores en los datos (segundo miembro)
Consideremos el siguiente ejemplo:0.10 1.00
0.11 1.00
x1x2
=
2.0
2.1
. Solucion exacta: x =
10.01.0
.
Supongamos que el segundo miembro b ha sido redondeado a un dgito decimal y que su
valor redondeado a dos dgitos decimales es b = (2.00, 2.14)t. La solucion de este
nuevo sistema es:0.10 1.00
0.11 1.00
x1x2
=
2.00
2.14
. Solucion exacta: x =
14.00.6
.
Notemos que un error de menos del 2% en los datos produjo un error del 40% en la
solucion!!!
Calculo Numerico IN1012C/IN1052C/MAT221N - 46 - DMFA Universidad Catolica de la Santsima Concepcion
-
Propagacion de errores en los datos (matriz)
Consideremos de nuevo el mismo ejemplo:0.10 1.00
0.11 1.00
x1x2
=
2.0
2.1
. Solucion exacta: x =
10.01.0
.
Supongamos ahora que la entrada a11 de la matriz es en realidad0.102 en lugar de
0.10 . La solucion de este nuevo sistema es:0.102 1.00
0.11 1.00
x1x2
=
2.00
2.1
. Solucion exacta: x =
12.5000.725
.
Esta vez un error del 2% en los datos produjo un error de alrededor del 25% en la solucion.
Otra vez, los errores en los datos se amplificaron, pese a que no se ha usado
metodo numerico alguno!
Calculo Numerico IN1012C/IN1052C/MAT221N - 47 - DMFA Universidad Catolica de la Santsima Concepcion
-
Propagacion de errores en el segundo miembro
Supongamos que se quiere resolver el sistemaAx = b, pero que del segundo miembro
b, solo se conoce un valor aproximado b = b+ b, sujeto a errores b.
Sea x la solucion exacta del sistemaAx = b.
Sea x = x x, el error de la solucion aproximada x. Entonces,
x
x(A
A1) bb
.
Calculo Numerico IN1012C/IN1052C/MAT221N - 48 - DMFA Universidad Catolica de la Santsima Concepcion
-
Numero de condicion
Se define el numero de condicion de la matrizA como
cond(A) := AA1 .
Dado que
x
x: error relativo de la solucion aproximada x,
b
b: error relativo del segundo miembro b,
x
x(A
A1) bb
= cond(A)b
b,
el numero de condicion cond(A) es una cota del factor de propagacion entre el
error relativo del dato b y el error relativo de la solucion aproximada x.
Para toda matriz no singularA, cond(A) 1.
Calculo Numerico IN1012C/IN1052C/MAT221N - 49 - DMFA Universidad Catolica de la Santsima Concepcion
-
Propagacion de errores en los datos de un sistema
El numero de condicion de la matriz de un sistema tambien rige la propagacion de errores
en la misma matriz.
Teorema. SiAx = b y (A+ A)(x+ x) = (b+ b), conA no singular y A
suficientemente pequeno como para que cond(A)AA < 1, entonces,
x
x
cond(A)
1 cond(A)AA
(A
A+b
b
).
La capacidad de propagar errores en los datos de un sistemaAx = b depende
esencialmente de la matrizA y no del segundo miembro b.
Si cond(A) 1 decimos que el sistema esta bien condicionado.
Si cond(A) 1 decimos que el sistema esta mal condicionado.
Calculo Numerico IN1012C/IN1052C/MAT221N - 50 - DMFA Universidad Catolica de la Santsima Concepcion
-
Propagacion de errores de redondeo
El numero de condicion de la matriz tambien determina la capacidad de propagar los
errores de redondeo cuando el sistema se resuelve computacionalmente.
Teorema. Sea x Rn la solucion del sistemaAx = b conA Rnn no singular y
b Rn.
Sea x Rn la solucion calculada mediante el metodo de eliminacion gaussiana con
estrategia de pivoteo parcial, en un computador con constante de precision .
Sea p =1
Amax
1i,j,kn
{a(k)ij }.Entonces, si el sistema no esta demasiado mal condicionado de manera que
cond(A) < 1, se tiene la siguiente acotacion del error relativo de la solucion
calculada:
x xx
2n3pcond(A)
1 cond(A).
Calculo Numerico IN1012C/IN1052C/MAT221N - 51 - DMFA Universidad Catolica de la Santsima Concepcion
-
Propagacion de errores de redondeo (cont.)
La cota del teorema nos dice que si el error de la solucion calculada x es muy grande,
necesariamante se debe a alguna (o a varias) de estas razones:
1. la dimension del sistema n es muy grande;
2. la constante de precision del computador no es suficientemente pequena;
3. el numero de condicion de la matriz cond(A) es demasiado grande.
Quien es el culpable?
solucion calculada mala =
dimension del problema excesivamente grande
mala precision del computador (pocos dgitos)
sistema mal condicionado
Teoremas analogos valen para el metodo de Cholesky, si la matrizA es simetrica y
definida positiva, y para el algoritmo de Thomas, si la matrizA es tridiagonal y satisface
las desigualdades |b1| > |c1|, |bn| > |an| y |bi| |ai|+ |ci|, i = 2, . . . , n 1.
Calculo Numerico IN1012C/IN1052C/MAT221N - 52 - DMFA Universidad Catolica de la Santsima Concepcion
-
Estimacion a posteriori del error de una solucion calculada
Sea x la solucion exacta del sistemaAx = b y sea x x una solucion calculada.
Sea e := x x el error de la solucion calculada x.
Sea r := bAx el residuo de la solucion calculada x.
Si el residuo fuera nulo (r = 0), la solucion calculada coincidira con la exacta.
Si no, como se puede estimar el error e? Notemos que
Ae = A(x x) = AxAx = bAx = r.
Por lo tanto, podemos proceder del siguiente modo:
1. Resolvemos computacionalmente
Ae = r.
2. La solucion calculada de este sistema e no va a coincidir exactamente con el error e
pero va a ser una aproximacion del mismo:
e e = e e.
3. e es una estimacion del tamano del error e.
Calculo Numerico IN1012C/IN1052C/MAT221N - 53 - DMFA Universidad Catolica de la Santsima Concepcion