Sie sind auf Seite 1von 33

SELAENIL

SENOICAUCE ED SAMETSIS

ED ACIREMUN NICULOSER

s el a e nil s e n oi c a u c e e d a ci r m u n n i c ul o s e R : 2 a m e T

baltaM ne nicamargorP .8 nemuseR .7 sovitareti sodotM .6 secirtaM y serotceV ed samroN .5 sotceriD sodotM .4 amelborP led otneimaetnalP .3 arutalcnemoN .2 niccudortnI .1

.2 AMET .2 AMET .2 AMET .2 AMET

2
a r ei n e g nI n e o ci r m u n ol u cl C

La resolucin de sistemas de ecuaciones lineales aparece como una parte importante en cualquier campo de la ciencia y de la ingeniera, como por ejemplo, la resolucin de balances de materia en un sistema. La resolucin de un sistema de ecuaciones lineales aparece tambin como un subproblema de un problema ms complicado de anlisis numrico, tal como ocurre por ejemplo cuando se resuelve iterativamente un sistema de ecuacionces no lineales por el mtodo Newton-Raphson, por ejemplo, donde en cada etapa de un proceso iterativo se requiere la resolucin de un sistema de ecuaciones lineales, o en procesos de optimizacin tanto lineales como no lineales. Con frecuencia los sistemas de ecuaciones presentan una estructura muy especial que puede ser objeto de tratamiento particular. Por ejemplo los problemas de interpolacin polinmica, etc... La resolucin de un sistema de ecuaciones lineales no tiene ninguna dificultad conceptual; llevarlo a la prctica s. Esto es debido a que los sistemas a resolver son frecuentemente de un tamao considerable y, esencialmente al hecho de que en el entorno fsico en que se resuelven, la aritmtica opera con precisin finita, lo que introduce errores de redondeo en todas las operaciones efectuadas, amn de que cualquier singularidad puede acarrear, si no se prev, consecuencias no deseadas. A continuacin vamos a estudiar algunos mtodos, directos o por recursin, para dar solucin numrica a sistemas de ecuaciones lineales. Existen otros algoritmos especiales como es el caso de las matrices dispersas o algunos otros tipos especiales de matrices que no se estudiarn aqu, pero que es conveniente conocer dada su importancia.

||x||i = norma i de un vector o matriz x, donde la i puede ser 1, 2 o . Si no se especifica, debe tomarse por defecto la norma 2 (o eucldea) A = matriz de coeficientes de un sistema de ecuaciones lineal

s el a e nil s e n oi c a u c e e d a ci r m u n n i c ul o s e R : 2 a m e T

arutalcnemoN .2 arutalcnemoN .2 arutalcnemoN .2

niccudortnI .1 niccudortnI .1
3

b = vector de trminos independientes, con cada elemento como bj G = es la matriz M en el mtodo de Gauss-Seidel I = matriz identidad (diagonal principal unos y resto ceros) J = es la matriz M en el mtodo de Jacobi L = matriz triangular inferior, con 1 en la diagonal principal, obtenida a partir de la matriz A por el mtodo de Gauss. Los elementos no nulos por debajo de la diagonal derivan (cambiados de signo) de los multiplicadores rij, para hacer nulos elementos de la diagonal de la matriz. M = matriz de coeficientes de la forma recursiva de los mtodos iterativos M=I-R-1A, P = matriz de permutaciones (de unos y ceros, con un solo uno por fila y columna) que proviene de los cambios de orden en las ecuaciones lineales al aplicar el mtodo de Gauss, de forma que la matriz original de coeficientes es A = P L U R = Una de las matrices en la cual se descompone la matriz original A = R-S en los mtodos iterativos rij = multiplicadores que se obtienen para hace ceros en la matriz A (o las que deriven) por debajo de la diagonal. S = Una de las matrices en la cual se descompone la matriz original A = R-S en los mtodos iterativos U = matriz triangular superior obtenida a partir de la matriz A por el mtodo de Gauss x = vector de incognitas del sistema, siendo cada una de ellas el elemento xi = nmero de condicin de una matriz

El problema que se plantea es la solucin de sistemas de ecuaciones lineales del tipo: a11 x1 + a21 x1 a21 x1 + a22 x2
M M

revloser a amelborp led otneimaetnalP .3

a r ei n e g nI n e o ci r m u n ol u cl C

aij = coeficiente que forma parte de la matriz anterior, correspondiente a la fila i (ecuacin i) y columna j (incognita j)

+ ... + + ... +

a1n xn an xn
M

= b1 = b2
M

an1 x1

+ an 2 x2

+ ... + ann xn

= bn

lo que significa deteminar el valor de las variables x1,....xn, que hacen que se cumplan las igualdades. A los nmeros aij se les denonomina coeficientes del sistema, y a los bi terminos independientes. Si se introducen las matrices

a11 a12 a a 22 21 A= M M a n1 a n 2

... a1n ... a 2 n M ... a nn

x1 x x = 2 M xn

el sistema puede representarse de forma ms compacta por:


A x=b

En el planteamientpo del problema se ha supuesto de forma implicita que el sistema de ecuaciones est bien definido, esto es, las ecuaciones que lo forman son todas linealmente independientes entre s y el nmero de ecuaciones es igual al nmero de variables.

4.1. Eliminacin de Gauss Comenzamos el estudio de los mtodos numricos directos con el estudio del mtodo por excelencia del lgebra lineal numrica. Supondremos que la matriz A es de rango completo -y por lo tanto invertible- eventualmente si no lo es el procedimineto deber detectarlo. El mtodo, aunque varios autores anteriores (Lagrange, Leibniz, y otros) ya haban investigado sobre el mismo, se atribuye a Gauss quien lo aplic por primera vez en 1809. La idea bsica es muy sencilla, se trata de aplicar al sistema dado por la ecuacin Ax=b una serie de transformaciones lineales de tal manera que al final de n pasos se haya transformado en uno mucho ms fcil de resolver. Concretamente un sistema triangular superior de la forma:

s el a e nil s e n oi c a u c e e d a ci r m u n n i c ul o s e R : 2 a m e T

b1 b b = 2 M bn

sotcerid sodotM .4 sotcerid sodotM .4 sotcerid sodotM .4 sotcerid sodotM .4


5

a r ei n e g nI n e o ci r m u n ol u cl C

u11x1 + u12 x2 u22 x2

+ ... +

u1n xn

' b1

+ ... + u2n xn M + unn xn

' = b2

M
' = bn

o escrito de forma matricial: U x = b' ; todo ello tratando de evitar el clculo de la matriz inversa, lo que comporta un nmero de operaciones significativamente mayor. Un sistema triangular superior, siempre y cuando se satisfagan las i = 1,....., n es fcilmente resoluble de manera condiciones u ii 0, recurrente mediante las frmulas:
b 'k uk k

xk =

Si k= n
n ' bk uki xi , i = k +1

xk =

1 ukk

k = n 1,......,1

este proceso se conoce como sustitucin inversa o hacia atrs. La eliminacin de Gauss convierte un sistema de ecuaciones lineales cualquiera en uno triangular superior equivalente mediante una serie de etapas, cada una de las cuales comporta las siguientes operaciones fundamentales: a. Multiplicacin de una cualquiera de las ecuaciones del sistema por un nmero distinto de cero. a. Sustitucin de una ecuacin cualquiera por la que resulta de sumarle otra cualquiera de las ecuaciones del sistema. permutacin del orden en el que aparecen en el sistema dos ecuaciones cualesquiera del mismo.

b.

Comencemos la exposicin de la mecnica del mtodo mediante un ejemplo que nos servir de introduccin
4x 1 4x 1 2x 1 2x 2 + + x2 x2 12x 3 + 3x 3 2x 3 7x 4 + 8x 4 + 4x 4 x4 = 9 = = = 2 2 2

3x 2

Dispongamos inicialmente la matriz A aumentada en la columna que define el $ trmino independiente b y llamemos a la nueva matriz resultante A , es decir:
3 7 9 4 2 4 1 2 8 2 A =[A / b] = 1 0 4 2 2 0 3 12 1 2

Etapa 1: comprobamos inicialmente que el elemento a11 -denominado elemento pivote- no es cero. Si no es cero, el objetivo es hacer ceros los elementos de la primera columna por debajo de ese a11. Para ello, definamos para cada fila por debajo de la del pivote, desde 2 hasta n, los factores o multiplicadores
ri1 = a i1 a 11

i=2,....n.

De esta forma, los elementos de las filas por debajo del pivote (cada fila de la matriz es un vector) se sustituyen por el resultado de multiplicar este factor ri1 por la fila del pivote, y sumarle la cada una de las filas i. Los elementos debajo del elemento pivote se hacen cero por esta operacin, variando del $ resto de los elementos de A :
a ij = a ij + ri1 a 1 j

i=2,3,4.

En el ejemplo que venimos manejando los multiplicadores son r21 = -a21/a11 =-(4/-4) = 1 r31= - a31/a11 = -(2/-4) = 1/2 r41 = - a41/a11 = - (0/-4) = 0

s el a e nil s e n oi c a u c e e d a ci r m u n n i c ul o s e R : 2 a m e T

j = 1, 2,3, 4, 5.

a r ei n e g nI n e o ci r m u n ol u cl C

$ La nueva matriz resultado de transformar A es:

3 7 9 4 2 0 1 1 1 7 A 1 = 0 3 / 2 1 / 2 5 / 2 0 2 0 3 12 1

Observese que se habra obtenido el mismo resultado de haber multiplicado $ A por la matriz : 1 1 L 1 = 1 / 2 0
0 0 0 1 0 0 0 1 0 0 0 1

Esta ltima es la denominada matriz de transformacin de Gauss. que


T tambin se puede escribir de la forma L 1 =I + e 1 , donde

0 1 = 1 / 2 0 Etapa 2 .

1 0 e1 = 0 0

Una vez realizados los ceros en la primera columna, por debajo de la diagonal principal, se procede a hacer cero los elementos debajo de la diagonal principal de la segunda columna. Observamos, no obstante que el elemento pivote a22 no es cero. As, procedemos ahora analogamente a como lo hicimos en el caso anterior para las filas 3,...n , definiendo los multiplicadores r32 y r42 a partir del elemento pivote a22 y los de las filas por debajo:
a i2 a 22 ;

ri 2 =

i > 2 .

r32 = 0; r42 = -3

Con estos factores, sustituyendo las filas 3 y 4 de 1 por el resultado de multiplicar esas filas por la del pivote (la fila 2) ms las filas 3 y 4, resulta
3 7 9 4 2 0 1 1 1 7 = A2 0 3 / 2 1 / 2 5 / 2 0 0 15 4 23 0

Esta matriz 2 tambien se hubiera obtenido multiplicando la matriz L2 por la 1. 0 0 2 = ; 0 3 1 0 0 1 L 2 =I + 2 e T = 2 0 0 0 3


0 0 0 0 1 0 0 1

Etapa 3. Finalmente, hay que hacer cero el elemento a43 a partir del elemento pivote en la fila 3. Procediendo de forma anloga mediante el multiplicador r43 = a43/a33 = 10, Definiendo la matriz L3 de forma anloga a las L1 y L2, resulta: 1 0 L3 = 0 0
0 1 0 0 0 1 0 0 10 1 ; 0 0

7 9 4 2 3 0 1 1 1 7 = L A = A3 3 2 0 3 / 2 1 / 2 5 / 2 0 0 0 1 2 0

De esta forma, se ha obtenido un sistema de ecuaciones triangular superior, resoluble directamente de forma secuencial desde la ltima fila hasta la primera.

7 x1 9 4 2 3 0 1 1 1 x 2 7 = 0 0 3 / 2 1 / 2 x 3 5 / 2 0 0 1 x 4 2 0

s el a e nil s e n oi c a u c e e d a ci r m u n n i c ul o s e R : 2 a m e T

a r ei n e g nI n e o ci r m u n ol u cl C

La solucin de este sistema se lleva a cabo muy facilmente mediante sustitucin inversa:
x4 = -2; sustituyendo en la tercera ecuacin: 52 + 1 x3 = = 1 3/ 2 7 ( 2 )( 1) x2 = =4 1 9 + 7( 2 ) 3( 1) + 2( 4) x1 = =3 4

A la hora de valorar las prestaciones de un algoritmo numrico se han de considerar diversos factores. Dos de los ms importantes son sin duda la estabilidad numrica del algoritmo ante los efectos de los errores de redondeo y la cantidad de tiempo necesaria para completar los clculos. Errores de redondeo y tiempo de clculo dependen del nmero de operaciones aritmticas necesarias para la aplicacin del algoritmo. Por el 1 3 n lo que da mtodo de Gauss el nmero de operaciones es del orden de 3 idea de lo que puede ser resolver sistemas de varios miles de ecuaciones por el mtodo de Gauss. Nmero de operaciones aritmticas A la hora de valorar las prestaciones de un algoritmo numrico se han de considerar diversos factores. Dos de los ms importantes son sin duda la estabilidad numrica del algoritmo ante los efectos de los errores de redondeo y la cantidad de tiempo necesaria para completar los clculos. Errores de redondeo y tiempo de clculo dependen del nmero de operaciones aritmticas necesarias para la aplicacin del algoritmo. Los tiempos necesarios para realizar en un ordenador la multiplicacin y la divisin de dos nmeros son aproximadamente iguales y, por otro lado, considerablemente mayores, en trminos relativos, que los tiempos necesarios para realizar la suma o diferencia de dos nmeros, que son muy semejantes entre s. La realcin entre el tiempo que requiere una multiplicacicin (divisin) y una suma (resta) vara de un ordenador a otro. Determinemos el nmero de operaciones aritmticas que requiere el procedimiento de eliminacin de Gauss para resolver un sistema de

10

ecuaciones lineales. En la primera etapa, las operaciones que se realizan estn simblicamente representadas en el esquema que sigue. x x M x x
x L x x L x
M O M

x L x x L x

x x x L x x x 0 a L a a M M M O M M x 0 a L a a x 0 a L a a

El smbolo a indica los elementos de la matriz que se ven afectados en esa etapa y que, en principio, son distintos de cero. Si estamos en la etapa i transformando una matriz de nxn, las operaciones que en ella se realizan son

ni

Divisiones para el clculo de los factores o multiplicadores Multiplicaciones y restas para modificar los elementos de la matriz por debajo de la fila i que no estn en la propia columna i

(n i )(n i + 1)

Sumando el nmero de operaciones en cada etapa se obtiene:

(n i ) + (n i )(n i + 1) = (n i )(n i + 2)

(n i )(n i + 1)

En las (n-1) etapas de que consta el proceso se harn:

s el a e nil s e n oi c a u c e e d a ci r m u n n i c ul o s e R : 2 a m e T

multiplicaciones / divisiones sumas / restas

11

a r ei n e g nI n e o ci r m u n ol u cl C

(n 1)(n i + 2) = (n2 + 2n)1 2(n + 1) i + i 2 =


i =1 i =1 i =1 i =1

n 1

n 1

n 1

n 1

(n 1)n (n 1)n(2n 1) = (n 2 + 2n)(n 1) 2(n + 1) + = 2 6 2n3 + 3n 2 5n = 6


n 1 i =1 n 1 i =1 n 1 i =1 n 1 i =1

Multiplicaciones divisiones

(n 1)(n i + 1) = (n2 + 2n)1 (2n + 1) i + i 2 =


(n 1)n (n 1)n = (n 2 + n)(n 1) (2n + 1) + = 2 6 n3 n = 3

Sumas o restas

Es decir, para sistemas grandes, el nmero de operaciones es del orden de (1/3)n3. Aunque la cantidad (1/3)n3 pueda parecer muy grande, si la comparamos con el mtodo de Cramer para la solucin de sistemas de cuaciones lineales, podemos comprobar que la diferencia en ms que notable. Por ejemplo, para un sistema 10x10 Gauss 700 operaciones Cramer 400.000.000 de operaciones. 4.2. Factorizacin LU La factorizacin LU o factorizacin triangular busca expresar una matriz cuadrada regular como producto de una triangular inferior L y otra triangular superior U. De tal manera que A=L U el problema de resolver Ax = b se reduce a resolver 2 sistemas de ecuaciones triangulares:

12

(LU)x = b;

Ly=b (triangular inferior)

Este hecho tiene una gran importancia cuando se quiere resolver sistemas en los que la matriz A es siempre la misma y lo nico que cambia es el trmino independiente. En el ejemplo anterior de la eliminacin de Gauss, partiendo de la matriz A (la de los coeficientes) se obtuvo otra matriz U triangular superior, fruto de ir multiplicando (por la derecha) por las matrices con cooeficientes Li, de forma que L3L2L1A=U.
3 7 4 2 4 1 2 8 A= 1 0 4 2 0 3 12 1 7 4 2 3 0 1 1 1 U= 0 3 / 2 1 / 2 0 0 0 1 0

Pasando las matrices Li al otro lado de la ecuacin, resulta que: 1 1 L= 1 / 2 0


0 1 0 0 0 1 0 3 10 1 0 0

A = L1 L1 L1 U = LU 1 2 3

Donde una matriz A se ha descompuesto, mediante la eliminacin de Gauss, en dos matrices triangulares, una inferior L y una superior U, cuyo producto es la matriz original A, y por tanto, permite resolver un sistema de ecuaciones lineales en dos sistemas inmediatos, uno triangular inferior (Ly=b), y a continuacin otro triangular superior (Ux=y). 4.3. Factorizacin PLU En el ejemplo puesto en el apartado 3.1. de la eliminacin de Gauss, no ha hecho falta aplicar una de las operaciones fundamentales del mtodo descritas anteriormente, en concreto la c que hace referencia a la permutacin del orden de las ecuaciones en el sistema. En otro ejemplo de sistema de ecuaciones, hubiera podido suceder que el elemento pivote de una transformacin de columnas fuera cero, lo cual hubiera abortado la posibilidad de obtener los multiplicadores rij (por ejemplo, si el elemento a11
13

s el a e nil s e n oi c a u c e e d a ci r m u n n i c ul o s e R : 2 a m e T

Ux=y (triangular superior)

a r ei n e g nI n e o ci r m u n ol u cl C

de la matriz fuera cero). En ese caso, se hubiera tenido que alterar el orden de las ecuaciones en el sistema, lo cual significa que la eliminacin de Gauss sigue siendo viable, que se siga obteniendo una matriz triangular superior U, pero en la factorizacin A= LU, la matriz L derivada de los multiplicadores incluye las permutaciones, que hace que L no sea triangular inferior. En este caso, puede incluirse una nueva martiz P de permutaciones, que solo tiene unos y ceros, de forma que si se cumpla la factorizacin: A=PLU La matriz U es una matriz triangular superior tal cual se obtiene de la eliminacin de Gauss. La matriz L es una matriz triangular inferior que almacena las eliminaciones que se han llevado a cabo durante la eliminacin de Gauss. La matriz P, no siempre presente, es una matriz de permutacin que recoge los intercambios de ecuaciones que se han producido durante la eliminacin. Aunque los intercambios se llevan a cabo de uno en uno, se pueden juntar todos en una nica matriz. Por ejemplo: 0 1 0 0
0 1 0 0 0 0 0 0 1 1 0 0 fila 1 fila 2 = fila 3 fila 4 fila 3 0 0 fila 1 1 0 P= fila 4 0 0 0 1 fila 2 donde 1 0 0 0 0 1 0 0

T 1 T Una matriz de permutacin cumple que P P = I y por lo tanto P = P

Como se ha dicho la matriz L almacena cada uno de los pasos del proceso de eliminacin, por ejemplo: 1 0 0 1 0 5 0 3
0 0 0 0 1 0 0 1 fila 1 fila 1 fila 2 fila 2 = fila 3 + 5 fila 2 fila 3 fila 4 fila 4 3 fila 2

Ilustraremos el procedimiento utilizando una mariz de 3x3

14

1.6 4.2 0.8 A = 4.0 1.5 3.0 8.0 1.0 1.0


Aunque no es estrictamente necesario, una buena forma de proceder es seleccionar como elemento pivote el de mayor valor absoluto. Esto se conoce como pivoteo parcial. En nuestro ejemplo comenzamos intercambiando las filas 3 y 1.

8.0 1.0 1.0 3.0 P A = 4.0 1.5 1 1.6 4.2 0.8

donde

Si llevamos a cabo la eliminacin de Gauss de la primera columna, los factores de eliminacin sern:
4 .0 = 0.5; 8 .0 1 .6 = 0 .2 8 .0

r21 =

As pues:

0 0 8.0 1.0 1.0 8.0 1.0 1.0 1 L1 ( P A ) = 0.5 1 0 4.0 1.5 3.0 = 0 2.0 2.5 1 0.2 0 1 1.6 4.2 0.8 0 4.0 1.0
Siguiendo con el procedimiento intercambiamos filas 2 y 3

8.0 1.0 1.0 P2 ( L1 P A) = 0 4.0 1.0 1 0 2.0 2.5


y por ltimo:

s el a e nil s e n oi c a u c e e d a ci r m u n n i c ul o s e R : 2 a m e T

0 0 1 P = 0 1 0 1 1 0 0

r31 =

donde

1 0 0 P2 = 0 0 1 0 1 0

15

a r ei n e g nI n e o ci r m u n ol u cl C

1 0 0 8.0 1.0 1.0 8 1 1 L2 ( P2 L1 P A) = 0 1 0 0 4.0 1.0 = 0 4 1 1 0 0.5 1 0 2.0 2.5 0 0 2


Si combinamos todos los pasos que hemos realizado hasta este momento obtenemos: L2P2L1P1A =U Despejando la matriz A, teniendo en cuenta que las matrices Pi son simtricas y operando:
A = (P1T L1 P2T L1 ) U = (P1 L1 P2 L1 ) U = L* U 1 2 1 2

con

L1 1

1 0 0 = 0.5 1 0 0.2 0 1

L1 = 0 2

0 1 0 0 0.5 1 0

Sealar que como consecuencia de las permutaciones intermedias el


* 1 1 resultado L = (P1 L1 P2 L 2 ) no es una matriz triangular inferior estrictamente hablando:

0 0.2 1.0 L = (P1 L P2 L )= 0.5 0.5 1.0 1.0 0 0


* 1 1 1 2

Simplemente deshaciendo las permutaciones

(P2 P1 ) A = (P2 P1 ) L* U = L U ;
PA = LU ; A = P T LU

y definiendo P = P2 P1 , resulta que

16

Donde P es una matriz de permutaciones (tiene unos y ceros, slo un uno por cada fila y columna), L una triangular inferior y U una triangular superior. Aplicndolo al ejemplo,

0 0 8 1 1 0 1 0 1 A = 0 0 1 0.2 1 0 0 4 1 1 0 0 0.5 0.5 1 0 0 2


Ahora volvemos al uso de la factorizacin
A x = PT L U x = b {
y 13 2 z

Primero resolvemos para z as: PT z = b que corresponde a cambiar el orden en b. A continuacin resolvemos L y = z este sistema es triangular inferior, por lo que se puede resolver por sustitucin hacia delante, y finalmente resolvemos U x = y que nos da la solucin del sistema. 4.4 Matrices definidas positivas. Factorizacin LDL y factorizacin de Cholesky Una matriz simtrica A es definida positiva si y slo si
xT A x > 0
T

para cualquier vector x diferente del vector nulo . Esta es una condicin difcil de verificar, pero existen condiciones equivalentes que, en ocasiones son ms prcticas. Por ejemplo A ser definida positiva si todos sus valores propios son positivos. O tambin si al aplicar eliminacin de Gauss a la matriz A sin usar pivotacin (no existen permutaciones de filas) para obtener una matriz triangular superior todos los elementos de la siagonal principal de la nueva matriz transformada son tambin positivos. De forma similar una matriz simtrica es:

semidefinida positiva si xT A x 0 para todo x (todos los valores propios son no negativos, o bien todos los elementos de la diagonal principal al hacer la eliminacin de Gauss son no negativos)

s el a e nil s e n oi c a u c e e d a ci r m u n n i c ul o s e R : 2 a m e T

17

principal de la matriz U: di,i = ui,i . Definamos U = D 1 U y por lo tanto D U =U .

a r ei n e g nI n e o ci r m u n ol u cl C

definida negativa si xT A x < 0 para todo x. (Todos los valores propios son negativos, o bien todos los elementos de la diagonal principal al hacer la eliminacin de Gauss son negativos)

semidefinida negativa si xT A x 0 para todo x. (Todos los valores propios son no positivos, o bien todos los elementos de la diagonal principal al hacer la eliminacin de Gauss son no positivos)

indefinida si xT A x puede tanto tomar valores tanto positivos como negativos. (los valores propios son algunos positivos y otrs negativos, o bien los elementos de la diagonal principal al hacer la eliminacin de Gauss aparecen con diferentes signos)

Si la matriz A es simtrica y definida positiva, la eliminacin de Gauss se puede llevar a cabo siempre sin utilizar pivoteo parcial sin peligro de que el mtodo intente realizar una divisin por cero y sin peligro de que aparezcan dificultades numricas. Si no hay intercambio de filas la factorizacin LU toma la forma A= LU Las primeras dos factorizaciones e pueden obtener manipulando esta frmula. Sea D la matriz diagonal cuyas entradas son las entradas de la diagonal

As pues A = L D U . Si A es definida positiva entonces es tambin simtrica y por lo tanto:


AT = (U )T DT LT = (U )T D LT = A = L D U

es fcil verificar que U = LT y por lo tanto: A = L D LT

18

Si la matriz A es definida positiva todos los elementos de la diagonal principal deben ser positivos. Podemos modificar la factorizacin anterior por otra: A=L D D LT donde D = D D y por lo tanto los elementos de la diagonal principal de esta nueva matriz sern di,i = (di,i)
1/2

Si nosotros definimos L = L D entonces A= L L factorizacin de Cholesky. Veamos un ejemplo:

consideremos la siguiente matriz que es simtrica y definida positiva

1.4 0.2 0.1 A = 0.2 1.5 0.3 0.1 0.3 1.8


T Haciendo la eliminacin de Gauss podemos repersentarla como LDL donde

1 0 0 0 0 1.4000 L = 0.1429 1 0 y adems D = 0 1.4714 0 0.0714 0.1942 1 0 0 1.7374


podemos modificar la matriz D para calcular D:

0 0 1.1832 D= 0 1.2130 0 0 0 1.3181


y por lo tanto

0 0 1.1832 0.1690 0.0845 1.1832 A = L L = 0.1690 1.2130 0 0 1.2130 0.2355 0.0845 0.2355 1.3118 0 0 1.3181
T

s el a e nil s e n oi c a u c e e d a ci r m u n n i c ul o s e R : 2 a m e T
T

que se conoce como

19

a r ei n e g nI n e o ci r m u n ol u cl C

Debido al caracter simtrico de la matriz el coste de clculo de la factorizacin de Cholesky es aproximadamente la mitad que el de la factorizacin PLU

5. Normas de vectores y matrices Una norma nos da una medida, mediante un escalar positivo, de la magnitud de los elementos de un vector o una matriz que le d en su conjunto. Es decir, es el equivalente a la nocin de valor absoluto para nmeros reales. En general una norma tiene que cumplir las siguientes propiedades:
x 0 x x =0 x = 0

x = x
x+ y x + y xy x y

Consideremos primero normas de vectores. Sea x = (x1, x2, x3, ..xn )T

las normas ms comunes son: Norma 2:

2 2 2 x 2 = x1 + x2 + ... + xn

)12

Norma 1:
n

x 1 = xi
i =1

20

Norma infinito
x = max xi
1 i n

p n p x p = xi i =1 Son casos especiales de

Ejemplo: x=(1, 2, 3)T


x 1 =1 + 2 + 3 = 6 x 2 = (1 + 4 + 9)1 / 2 = 14 x = max{1,2,3} = 3

En muchos casos no importa realmente que norma se est usando, por lo

x sin ms especificaciones. En que es til en ocasiones usar la notacin problemas grandes de software es til usar la norma infinito.
Si el vector tiene muchas entradas la norma 1 y la 2 son valores grandes independiente de que los valores sean todos pequeos. la norma infinito no cumple esta propiedad. Las normas de matrices se suelen definir en trminos de las normas vectoriales. Si A es una matriz y x es un vector cualquiera, la norma matricial inducida de la matriz A viene dada por :

A = max A x
x =1

Todas las normas inducidas satisfacen:

Ax A x

s el a e nil s e n oi c a u c e e d a ci r m u n n i c ul o s e R : 2 a m e T
1

21

a r ei n e g nI n e o ci r m u n ol u cl C

y adems se tiene que cumplir:

AB A B
Las normas matriciales inducidas por los vectores son :
n

A 1 = max

1 j n i =1

Aij
(mximo de la suma de los valores absolutos de las

columnas)

A 2 = max AT A
A A)
n
T

( )

(mximo de la raiz cuadrada de los valores propios de

A = max

1 i n j =1

Aij
(mximo de la suma de los valores absolutos de las filas)

Ejemplo:

1 3 2 4 A = 5 7 9 3 2 1 6 8

A 1 = max{1 + 5 + 2, 3 + 7 + 1, 2 + 9 + 6, 4 + 3 + 8} =17 A = max{1 + 3 + 2 + 4, 5 + 7 + 9 + 3, 2 + 1 + 6 + 8} = 24 A 2= max (0, 19.2065,105.1842,174.6093)1 / 2 =13.2140

Condicionamiento de sistemas de ecuaciones lineales El concepto de condicionamiento de un problema es algo a lo que se recurre a menudo, aun cuando el concepto es algo difuso o vago. En un sentido general, se dice que un problema est bien condicionado si pequeos

22

cambios en los parmetros que lo definen producen pequeos cambios en los resultados. Para decidir si tal o cual problema est bien condicionado habra que determinar su sensibilidad a cada uno de sus parmetros. Como ejemplo de condicionamiento podramos considerar el de una carga sujeta a una superficie firme mediante un cable o barra de hierro. Aumentando la carga en pequeas cantidades, el cable o barra sufre unos pequeos estiramientos proporcionales a los incrementos de esa carga. Alcanzando el umbral que define la zona denominada de fluencia, incrementos muy pequeos de la carga suponen, proorcionalmente grandes estiramientos del cable. Antes de este umbral el problema estiramiento/carga se puede decir que est bien condicionado; en la zona de fluencia por el contrario el problema est mal condicionado. Un sistema de ecuaciones lineales representado Ax=b, como modelo matemtico de un determinado problema tambin puede estar mal o bien condicionado. Su condicionamiento lo determina la estabilidad del vector solucin x a pequeos cambios, tanto en el trmino de la derecha b, como en los coeficientes que definen la matriz A. Particularmente importante importante es el asunto del condicionamiento de un sistema de ecuaciones lineales si tenemos en cuenta que el ordenador que lo ha de resolver no trabaja ms que con una precisin determinada, por lo tanto no resolver el sistema como tal sino una aproximacin:

( A + A ) x = b + b
Si el algoritmo utilizado es estable y el sistema tambin cabe esperar que el resultado obtenido sea muy parecido al real. Sin embargo, si el sistema est mal condicionado la solucin puede diferir sustancialmente de la real. De estas consideraciones se desprende que puede ser necesario cuantificar el condicionamiento de un sistema de ecuaciones. Esto se hace a travs del nmero de condicionamiento de una matriz que veremos ms adelante. Antes consideremos los dos sistemas de ecuaciones siguientes:

s el a e nil s e n oi c a u c e e d a ci r m u n n i c ul o s e R : 2 a m e T

23

a r ei n e g nI n e o ci r m u n ol u cl C

8 5 x1 3 4 10 x = 14 2
La solucin de
T

0.66 3.34 x1 4 199 10.01 x = 12 . 2


es el vector [1,1]T Si introducimos un

ambos

en el trmino independiente del primer sistema, su solucin pasar a ser [0.993, 0.9968]T el cambio realtivo de la norma euclidea del vector b es
b 0. 042 + 0. 062 = = 0. 0050 b 2 2 3 + 14

b = 0.04 , 0.06

Por lo que respecta a la solucin ese cambio relativo en la norma euclidea es


x = 0. 0054 x

Como se puede ver un cambio pequeo en el vector b induce un cambio pequeo en el vector solucin. Introduciendo el mismo cambio en el vector b del segundo sistema su solucin pasa a ser x=[6,0]T es decir un cambio relativo en la norma euclidea de b igual a 0.0057, produce un cambio relativo en el vector solucin de 3.6055. Evidentemente el segundo sistema es mucho ms sensible a cambios en el trmino independiente que el primero. Un estudio similar se prodra hacer introduciendo pequeos cambioes en la matriz de coeficientes. Analicemos en primer lugar el caso de una modificacin b del trmino independiente. Veamos como se relaciona la solucin de
A( x + x) = b + b con la de Ax=b.

Restando las dos ecuaciones anteriores y despejando x se obtiene que:


x = A 1b
24

De la definicin de norma matricial consistente con una norma vectorial se tiene que

x A 1 b b A x
de las ecuaciones anteriores podemos deducir que el error relativo de la solucin del sistema al modificar el trmino independiente es:
x b A A 1 x b

Se define entonces el nmero de condicin de una matriz invertible A como:

( A) = A A 1
El nmero de condicin de una matriz A es un factor del error de ampliacin que produce en el vector x su multiplicacin por la matriz A De la misma forma que analizamos el efecto de pequeos cambios en el trmino independiente, se pueden estudiar cambios en la matriz de coeficientes. Comparandola solucin de los dos sistemas siguientes:
A x=b y

( A + A )( x + x) = b

con las dos ecuaciones anteriores y despreciando el producto A.x se obtiene que:
x A A 1 A x A

As el error relativo que resulta de aplicar unos pequeos cambios en los coeficientes de la matriz de un sistema de ecuaciones lineales est acotado en trminos del nmero de condicin de la matriz de coeficientes.

s el a e nil s e n oi c a u c e e d a ci r m u n n i c ul o s e R : 2 a m e T

25

a r ei n e g nI n e o ci r m u n ol u cl C

El nmero de condicin indica tambin lo cerca que la matriz est de la singularidad. Recordando el ejemplo que se utilizaba para introducir estos conceptos, las matrices de coeficientes y sus inversas son respectivamente:

8 5 A= 4 10

. 010 0.05 A1 = 0.4 0.08

El nmero de condicin es = 1 ( A) = A A 1 = 15 014 = 2.1 .

0.66 3.34 A= . 199 10.01

. 250.25 835 A1 = 49.75 16.5

Con nmero de condicin= 1 ( A) = A A 1 = 13.35 300 = 4005 tres ordenes de magnitud superior. 6. Mtodos iterativos En los apartados anteriores se pueden entrever las dificultades con las que puede encontrarse un usuario de esos mtodos a la hora de resolver problemas grandes o muy grandes. Como ejemplo supongamos que se desea modelizar la temperatura en las distintas partes de un cuerpo tridimensional con forma de paraleleppedo; suponiendo que la temperatura de una partcula en ese cuerpo depende de su posicin, su valor se puede aproximar discretizando cada una de las tres dimensiones del cuerpo en una serie de intervalos determinados y considerando cada uno de los pequeos trocitos de la malla que se obtiene. Si cada dirrecccin se divide en 100 intervalos la malla resultante tendr 100x100x100=1000000 elementos. a pesar de que en este sencillo ejemplo existe un slo parmetro fsico a considerar, la temperatura, el modelo adoptado involucra clculos con un milln de variables o incognitas: la temperatura en cada elemento. Como se puede comprender, los mtodos directos tal como se han estudiado, no se pueden aplicar a problemas de grandes dimensiones, como el del ejemplo. afortunadamente muchos de los grandes problemas que se plantean habitualmente en la industria y en la tcnica presentan unas
26

matrices de coeficientes en las que los elementos distintos de cero son muy pocos. En el caso del ejemplo anterior se puede asumir que la temperatura en cada elemento slo est intimamente relacionada con la de los ms prximos a l. En los ltimos aos se han desarrollado tcnicas especiales que permiten trabajar con matrices dispersas como en el caso anterior. Sin embargo, una forma ms clsica de resolver problemas de grandes dimensiones sin utilizar los mtodos directos la conforman los mtodos iterativos. La idea general de los mtodos iterativos consiste en llegar a la solucin real del problema mediante una sucesion de soluciones que converjan a aquella. Estos mtodos no proporcionan, tericamente la solucin exacta, aunque s permiten, cuando funcionan bien, acercarse a aquella tanto como se desee. Si consideramos que el problema a resolver es el de determinar un vector x tal que Ax=b la idea comn de todos los mtodos iterativos estriba en descomponer la matriz de coeficientes A de la forma: A = R-S donde la matriz R se elige de maner que sea inverible con inversa fcilmente calculable, la ecuacin Ax=b se puede escribir: Rx = Sx +b o bien x = R 1 ( R A ) x + R 1 b = ( I R 1 A ) x + R 1b = Mx + c la ecuacin x=Mx +c sugiere la definicin de un esquema iterativo del tipo:

x( k +1) = M x( k ) + c
con el que partiendo de un vector inicial arbitrario x0 se obtenga una sucesin de vectores que converja a la solucin real de la ecuacin. El mtodo iterativo ser convergente si

s el a e nil s e n oi c a u c e e d a ci r m u n n i c ul o s e R : 2 a m e T

27

a r ei n e g nI n e o ci r m u n ol u cl C

lim x (k ) = x
k

Las tcnicas iterativas rara vez se emplean para resolver sistemas de ecuaciones lineales de pequea dimensin pues el tiempo y el nmero de iteraciones requerido para lograr una precisin suficiente en la solucin excede a la de los mtodos directos. 6.1. Mtodo de Jacobi El primero de los mtodos que consideramos es el de Jacobi. Para familiarizarse con su mecnica, supongamos que se desea resolver el sistema de tres ecuaciones lineales con tres incognitas:

a11x1 + a12 x2 a21x1 + a22 x2 a31x1 + a32 x2

+ a13x3

= b1

+ a23x3 = b2 + a33x3 = b3

Admitiendo que los coeficientes a11, a22, a33 son distintos de cero se puede despejar de la primera ecuacin la incognita x1 de la segunda x2 y x3 de la tercera, resultando:
1 ( b1 a12 x2( k ) a13 x3( k ) ) a11 1 ( b a21 x1( k ) a23 x3( k ) ) a22 2 1 ( b a x ( k ) a32 x2( k ) ) a33 3 31 1

x1 k +1 = x2k +1 = x3k +1 =
( ) ( )

La generalizacin de esta idea es la base del mtodo iterativo de Jacobi. La relacin general de recurrencia para un sistema n x n es :

xi( k +1)

n 1 = bi aij x (j k ) , aii j =1 j i

i = 1,...., n

Razonando de igual forma a como lo haciamos al principio de este captulo, descompongamos la matriz de coeficientes del sistema, A, de la forma:
28

A = D ( D A)

donde D es la matriz diagonal formada por los elementos de la matriz diagonal de A. El esquema iterativo del mtodo de Jacobi escrito de forma matricial resulta:
x k +1 = ( I D1A ) x k + D 1b
( ) ( )

La matriz J=I-D-1A es la que caaracteriza el mtodo de Jacobi denominandose Matriz de Jacobi. Mtodo de Gauss-Seidel En el mtodo de Jacobi cada una de las componentes del vector solucin en la iteracin (k+1) se determina a partir de las de la iteracin (k). La idea del mtodo de Gauss-Seidel es muy intuitiva, modificar el de Jacobi utilizando en el clculo de cada componentede la solucin en una iteracin el valor de aquellos ya calculados en esa iteracin. Volviendo al sistema de orden 3 que considerabamos para introducir el mtodo de Jacobi, suponiendo nuevamente que los coeficientes de la diagonal principal son distintos de cero, el esquema iterarivo del mtodo de Gauss-Seidel es el siguiente:
1 ( b1 a12 x2( k ) a13 x3( k ) ) a11 1 ( b2 a21 x1( k +1) a23 x3( k ) ) a22 1 ( b a x ( k +1) a32 x2( k +1) ) a33 3 31 1

x1 k +1 = x2k +1 = x3k +1 =
( ) ( )

Si en le mtodo de Jacobi las relaciones de recurrencia que conformaban el esquema iterativo se obtenan de despejar cada variable en su correspondiente ecuacin, en el mtodo de Gauss-Seidel esas relaciones surgen de hacer esto mismo pero de una forma que podramos denominar escalonada. La relacin de recurrencia general para un sistema n x n es la siguiente:

s el a e nil s e n oi c a u c e e d a ci r m u n n i c ul o s e R : 2 a m e T

29

a r ei n e g nI n e o ci r m u n ol u cl C

xi(

k +1)

i 1 1 k +1 bi aij x(j ) aii j =1

j =i +1

aij x(jk ) ; i = i,...., n

Si se introducen las matrices:

0 0 a 0 21 M E = M an 1,1 an 1,2 an1 an 2

0 0 M ... 0 ... an, n 1 0 ... ... 0 0 M 0

0 a12 0 0 F = M M 0 0 0 0

... a1n 1 ... a2 n 1

M
... ... 0 0

a1n a2 n M an 1n 0

y volvemos a considerar la descomposicin de la matriz del sistema A de la forma A=(D-E)-F E sistema iterativo escrito en forma matricial resulta :

x( k +1) = ( I ( D E) A ) x( k ) + ( D E) b
1 1

Y por lo tanto la matriz de Gaus ser:


G = I ( D E) A
1

7. Resumen

En este tema se ha presentado como resolver sistemas de ecuaciones lineales por mtodos numricos, problema muy comn y complejo dado que bien suele hacer falta en muchas disciplinas o bien hace falta su resolucin dentro de otro mtodo numrico.

Existen dos mtodos bien diferenciados, los mtodos directos y los mtodos iterativos.

Los mtodos directos se basan en la resolucin de sistemas de ecuaciones triangulares. Para ello, se debe factorizar la matriz de
30

coeficientes del sistema en dos matrices triangulares, mediante el denominado mtodos de factorizacin de Gauss (o bien incluyendo una de permutaciones). De cualquier forma, hay que comprobar si el sistema est bien condicionado, para no cometer posibles errores de precisin.

Por otro lado, los mtodos iterativos se emplearan en aquellos casos donde haya un nmero de ecuaciones muy grande y haya un alto nmero de elementos nulos en la matriz de coeficientes, pudiendo emplearse los mtodos de Jacobi o Gauss Seidel

Para resolver el sistema de ecuaciones plantearemos varios subprogramas.


A x = P LU x = b Ux = y Ly = z Pz = b

1.1. Resolucion sistema triangular inferior


function y=trianginf(L,z) f=length(z);% Numero de ecuaciones y=zeros(f,1); y(1)=z(1)/L(1,1); for n=2:f sumatorio=0; for i=1:n-1 sumatorio=sumatorio+L(n,i)*y(i); end y(n)=(z(n)-sumatorio)/L(n,n); end

1.2. Resolucion sistema triangular superior


function x=triangsup(U,y) f=length(y);% Numero de ecuaciones x=zeros(f,1); x(f)=y(f)/U(f,f); for n=f-1:-1:1

s el a e nil s e n oi c a u c e e d a ci r m u n n i c ul o s e R : 2 a m e T

baltaM ne nicamargorP .8 baltaM ne nicamargorP .8 baltaM ne nicamargorP .8 baltaM ne nicamargorP .8


31

a r ei n e g nI n e o ci r m u n ol u cl C
sumatorio=0; for i=f:-1:n+1 sumatorio=sumatorio+U(n,i)*x(i); end x(n)=(y(n)-sumatorio)/U(n,n); end

1.3. Funcion para resolver sistemas lineales


function x=sistemalineal(A,b) % COMPROBACIONES: [f,c]=size(A); k=length(b); if f~=c disp('Te has equivocado') return elseif f~=k disp('Te has equivocado') return end % SOLUCION: [L,U,Pmatlab]=lu(A); P=Pmatlab';% Para que coincida con lo que pone en los apuntes z=P'*b; y=trianginf(L,z); x=triangsup(U,y);

1.4. Metodos iterativos: Jacobi


xi(k +1) = ( I D 1 A) x (k ) + D 1b D = matriz diagonal formada por los elementos de la diagonal de A
function x=jacobi(A,b) f=length(b); xsup=ones(f,1); D=diag(diag(A)); I=eye(f); J=I-inv(D)*A; RE=max(eig(J)); if RE>=1 disp('A lo mejor no converge') disp('El R.E. es >=1') end xmejor=zeros(f,1); while norm(xsup-xmejor)/norm(xsup)>1e-3 xsup=xmejor; xmejor=J*xsup+inv(D)*b; end x=xmejor;

1.5. Metodos iterativos: Gauss Seidel

32

x i(k +1) = ( I (D E ) A) x (k ) + (D E ) b
1 1

D = matriz diagonal formada por los elementos de la diagonal de A E = triangular inferior de A cambiada de signo
function x=gausseidel(A,b) f=length(b); xsup=ones(f,1); D=diag(diag(A)); I=eye(f); E=-tril(A,-1); G=I-inv(D-E)*A; RE=max(eig(G)); if RE>=1 disp('A lo mejor no converge') disp('El R.E. es >=1') end xmejor=zeros(f,1); while norm(xsup-xmejor)/norm(xsup)>1e-3 xsup=xmejor; xmejor=G*xsup+inv(D-E)*b; end x=xmejor;

1.6. Ejemplo resolucion sistema por varios metodos


A=[2 1 0 4;0 -3 -12 -1;0 0 2 1/3;0 0 3 1]; b=[2 2 -8/3 -5]'; x=sistemalineal(A,b) x1=jacobi(A,b) x2=gausseidel(A,b)

s el a e nil s e n oi c a u c e e d a ci r m u n n i c ul o s e R : 2 a m e T

33

Das könnte Ihnen auch gefallen