Académique Documents
Professionnel Documents
Culture Documents
282
10.1 DESCOMPOSICIN LU
Como se describi en el captulo anterior, la eliminacin de Gauss sirve para resolver sistemas de ecuaciones algebraicas lineales, [ A ][ X ] = { B } (10.1)
Aunque la eliminacin Gauss representa una forma satisfactoria para resolver tales sistemas, resulta ineficiente cuando deben resolverse ecuaciones con los mismos coeficientes [A], pero con diferentes constantes del lado derecho (las b). Recuerde que la eliminacin de Gauss implica dos pasos: eliminacin hacia adelante y sustitucin hacia atrs (figura 9.3). De ambas, el paso de eliminacin hacia adelante es el que representa la mayor parte del trabajo computacional (recuerde la tabla 9.1). Esto es particularmente cierto para grandes sistemas de ecuaciones. Los mtodos de descomposicin LU separan el tiempo usado en las eliminaciones para la matriz [A] de las manipulaciones en el lado derecho {B}. Una vez que [A] se ha descompuesto, los mltiples vectores del lado derecho {B} se pueden evaluar de manera eficiente. El hecho de que la misma eliminacin de Gauss se puede expresar como una descomposicin LU es muy interesante. Antes de mostrar cmo se puede realizar esto, demos primero una demostracin matemtica de la estrategia de descomposicin.
Pgina 1 de 32
Suponga que la ecuacin (10.2) puede expresarse como un sistema triangular superior:
[ ]{ } { }
u 11 u 12 u 13 0 0 u 22 u 23 0 u 33 x1 x2 x3 d1 d2 d3 = [ U ]{ X } { D } = 0 (10.4) [ L] =
(10.3)
Observe que esto es similar a la manipulacin que ocurre en el primer paso de la eliminacin de Gauss. Es decir, se utiliza la eliminacin para reducir el sistema a una forma triangular superior. La ecuacin (10.3) tambin se expresa en notacin matricial y se reordena como
Ahora, suponga que existe una matriz diagonal inferior con nmeros 1 en la diagonal,
[ ]
1 0 0 0 l 21 1 l 31 l 32 1 (10.7)
(10.5)
que tiene la propiedad de que cuando se premultiplica por la ecuacin (10.4), el resultado es la ecuacin (10.2). Es decir, [ L ][ U ]{ X } { D } } = [ A ][ X ] { B } (10.6)
Si esta ecuacin se satisface, segn las reglas de multiplicacin entre matrices, se obtendr [ L ][ U ] = [ A ] y [ L ]{ D } = { B } (10.8)
Una estrategia de dos pasos (vase figura 10.1) para obtener soluciones se basa en las ecuaciones (10.4), (10.7) y (10.8):
Pgina 2 de 32
283 284
FIGURA 10.1
Pasos en la descomposicin LU Ahora se mostrar cmo se puede llevar a cabo la eliminacin de Gauss en esta forma.
Pgina 3 de 32
[ U] =
[ ]
a 11 a 12 a 13 0 a 22 a 33 0 0 a 33
(10.9)
que es el formato triangular superior deseado. Aunque quiz no sea muy clara, la matriz [L] se produce durante este paso. Lo anterior se ilustra fcilmente con un sistema de tres ecuaciones,
[ ]{ } { }
a 11 a 12 a 13 a 21 a 22 a 23 x1 x2 x3 b1 b2 b3 = a 31 a 32 a 33 El primer paso en la eliminacin de Gauss consiste en multiplicar el rengln 1 por el factor [recuerde la ecuacin (9.13)] f 21 = a
a 21
11
284 285
y restar el resultado al segundo rengln para eliminar a2l. De forma similar, el rengln 1 se multiplica por f 31 = a
a 31
11
y el resultado se resta al tercer rengln para eliminar a31. El paso final es multiplicar el segundo rengln modificado por f 32 =
a 32 a 22
y restar el resultado al tercer rengln para eliminar a32. Ahora suponga que realizamos todas esas operaciones slo en la matriz [A]. Resulta claro que si no se quiere modificar la ecuacin, se tiene que hacer lo mismo con el lado derecho {B}. Pero no existe ninguna razn para realizar las operaciones en forma simultnea. Se podran conservar las f y despus manipular {B}.
Pgina 4 de 32
[ ]
a 11 a 12 a 13 a 22 a 23 a 33
f 21 f 31
(10.10)
f 32
De hecho, esta matriz representa un almacenamiento eficiente de la descomposicin LU de [A]. [ A ] [ L ][ U ] donde (10.11)
[ U] =
[ ]
a 11 a 12 a 13 0 a 22 a 23 0 0 a 33
[ L] =
[ ]
1 0 0 f 21 1 0 f 31 f 32 1 Obtenga una descomposicin LU basndose en la eliminacin de Gauss que se realiz en el ejemplo 9.5.
285
Pgina 5 de 32
285 286
[ A] =
[ [
0.3 0.2
] ]
3
Despus de la eliminacin hacia adelante, se obtuvo la siguiente matriz triangular superior: 3 0.1 0.2
[ U] =
Los factores empleados para obtener la matriz triangular superior se pueden colocar en una matriz triangular inferior. Los elementos a21 y a31 se eliminaron al usar los factores f 21 =
0.1 3
= 0.03333333 f 31
0.3
= 0.1000000
y el elemento a32 se elimina al usar el factor f 32 = 7.00333 = 0.0271300 As, la matriz triangular inferior es
0.19
[ L] =
1 0.0333333
0 1
0 0
0.100000 0.02713001
]
0 1 0 0
En consecuencia, la descomposicin LU es
[ A ] = [ L ][ U ] =
1 0.0333333
0.100000 0.02713001
][
3 0.1
0.2
]
Pgina 6 de 32
[ L ][ U ] =
0.0999999 7 0.3
0.2 9.99996
]
286 287
donde las pequeas diferencias son debidas a errores de redondeo. El siguiente es el seudocdigo de una subrutina para realizar la fase de descomposicin: SUB Decompose (a, n) DOFOR k = 1, n 1 DOFOR i = k + 1, n factor = ai,K/a ai,k = factor DOFOR j = k + 1, n ai,j= ai,j factor * ak, END DO END DO END DO END Decompose Observe que este algoritmo es simple en el sentido de que no se incluye el pivoteo. Esta caracterstica se agregar ms tarde cuando se desarrolle el algoritmo completo para la descomposicin LU. Despus de descomponer la matriz, se puede generar una solucin para un vector particular {B}. Esto se lleva a cabo en dos pasos. Primero, se realiza un paso de sustitucin hacia adelante al resolver la ecuacin (10.8) para {D}. Es importante notar que esto slo se refiere a la realizacin de las operaciones de la eliminacin en {B}. De esta forma, al final del procedimiento, el lado derecho estar en el mismo estado que si se hubiesen realizado las operaciones hacia adelante sobre [A] y {B} en forma simultnea. El paso de la sustitucin hacia adelante se representa en forma concisa como
i 1
k,k
di = di
j =1
a i j b j para i = 2, 3 , n
(10.12)
En el segundo paso, entonces, tan slo se realiza la sustitucin hacia atrs, como en la ecuacin (10.4). Otra vez, es importante reconocer que este paso es idntico al de la fase de sustitucin hacia atrs, en
Pgina 7 de 32
(10.13)
ai jx j
xi =
ai i
para i = n 1, n 2, , 1
(10.14)
287 288
Solucin.
Como se estableci antes, la intencin de la sustitucin hacia adelante es aplicar las operaciones de eliminacin al vector {B}, previamente aplicadas a [A]. Recuerde que el sistema resuelto en el ejemplo 9.5 fue
0.3 0.2
]{ } { }
x1 x2 x3 7.85 = 19 .3 71 .4
y que la fase de eliminacin hacia adelante del mtodo de eliminacin convencional de Gauss dio como resultado
3 0.1
0.2
]{ } { }
x1 x2 x3 7.85 = 19 .5617 70 .0843
(E10.2.1)
La fase de la sustitucin hacia adelante se realiza aplicando la ecuacin (10.7) a nuestro problema,
Pgina 8 de 32
1 0.0333333
0 1
0 0
0.100000 0.02713001
]{ } { }
d1 d2 d3 7.85 = 19 .3 71 .4 = 7.85 = 19.3
0.1d 1 0.02713d 2 + d 3 = 71.4 Se resuelve la primera ecuacin para d1, d1 = 7.85 la cual se sustituye en la segunda ecuacin y se resuelve para d2 d2 = 19.3 0.0333333(7.85) = 19.5617 Ambas, d1 y d2, se sustituyen en la tercera ecuacin para d3 d3 = 71.4 0.1(7.85) + 0.02713(19.5617) = 70.0843 As,
{ D} =
{ }
7.85 19 .5617 70 .0843
288 289
que es idntica al lado derecho de la ecuacin (E10.2.l). Este resultado se sustituye, entonces, en la ecuacin (10.4), [U]{X} = {D}, para obtener
3 0.1
0.2
]{ } { }
x1 x2 x3 7.85 = 19 .5617 70 .0843
que se resuelve por sustitucin hacia atrs (vase ejemplo 9.5 para ms detalles) para obtener la solucin final,
Pgina 9 de 32
{ X} =
{ }
3 2.5 7.00003
El siguiente es el seudocdigo de una subrutina para implementar ambas fases de sustitucin: SUB Substitute (a, n, b, x) sustitucin hacia adelante DOFOR i = 2, n sum = bi DOFOR j = 1, i 1 sum = sum ai,j * bj END DO bi = sum END DO sustitucin hacia atrs xn= bn/an,n DOFOR i = n 1, 1, 1 sum = 0 DOFOR j = i + 1, n sum = sum + ai, END DO xi = (bi sum)/ai, END D0 END Substitute El algoritmo de descomposicin LU requiere los mismos FLOP de multiplicacin/divisin totales que la eliminacin de Gauss. La nica diferencia es que se aplica un menor trabajo en la fase de descomposicin, debido a que las operaciones no se aplican al lado derecho. De esta forma, el nmero de FLOP de multiplicacin/divisin en la fase de descomposicin se calculan as:
i j
* xj
289
Pgina 10 de 32
289 290
FIGURA 10.2
290
Pgina 11 de 32
Los factores generados durante la fase de eliminacin se guardan en la parte inferior de la matriz. Esto puede hacerse debido a que de cualquier manera stos se convierten en ceros y no son necesarios en la solucin final. Este almacenamiento ahorra espacio. El algoritmo lleva cuenta del pivoteo al usar un vector de orden o. Esto acelera notablemente el algoritmo, ya que slo se pivotea el vector (y no todo el rengln). Las ecuaciones no estn escaladas, pero se usan valores escalados de los elementos para determinar si se va a usar el pivoteo. El trmino de la diagonal se verifica durante la fase de pivoteo para detectar ocurrencias cercanas a cero con el propsito de advertir al usuario respecto de sistemas singulares. Si baja de un valor er = 1, entonces se ha detectado una matriz singular y se debe terminar el clculo. El usuario le da a un parmetro tol un valor pequeo, para detectar ocurrencias cercanas a cero.
FIGURA 10.3
Pgina 12 de 32
(10.17)
para j = 2, 3, n
(10.18)
Para j = 2, 3, n 1
j 1
li j = ai j
j 1
k =1
l i k u k j para i = j , j + 1, , n
(10.19)
uj k = y
aj k
i =1
l j iu i k
lj j
para k = j + 1, j + 2, , n
(10.20)
n 1
ln n = an n
k =1
l n ku k n
(10.21)
291 292
Adems de que consiste de pocos ciclos, el mtodo anterior tambin tiene la ventaja de economizar espacio de almacenamiento. No hay necesidad de guardar los nmeros 1 que estn en la diagonal de [U] o los nmeros cero de [L] o [U], ya que se dan en el mtodo. En consecuencia, los valores de [U] se pueden guardar en el espacio de los ceros de [L]. Adems, mediante un cuidadoso examen de lo anterior, queda claro que despus de que un elemento de [A] se emplea una vez, nunca vuelve a utilizarse. Por lo tanto, conforme se va calculando cada elemento de [L] y [U], se puede sustituir por el elemento correspondiente de [A] (como se design por sus subndices). El seudocdigo para realizar esto se presenta en la figura 10.4. Observe que la ecuacin (10.17) no est incluida en el seudocdigo, porque la primera columna de [L] ya se guard en [A]. De otra forma, el algoritmo sigue, en forma directa, de las ecuaciones (10.18) a la (10.2l).
= [A]
[A] = [I]
Pgina 13 de 32
FIGURA 10.4
292
Pgina 14 de 32
292 293
{ b} =
{}
1 0 0
la solucin resultante ser la primera columna de la matriz inversa. En forma similar, si se emplea un vector unitario que tiene un nmero 1 en el segundo rengln
{ b} =
{}
0 1 0
el resultado ser la segunda columna de la matriz inversa. La mejor forma de realizar un clculo como ste es con el algoritmo de descomposicin LU, descrito al inicio de este captulo. Recuerde que una de las ventajas ms importantes de la descomposicin LU es que proporciona un medio eficiente para evaluar diversos vectores del lado derecho. Por lo tanto, resulta ideal para evaluar los vectores unitarios requeridos en el clculo de la inversa.
[ A] =
0.3 0.2
]
Pgina 15 de 32
Recuerde que la descomposicin dio como resultado las siguientes matrices triangulares inferior y superior:
[ U] =
3 0.1
0.2
] [
=
1 0.0333333
0 1
0 0
0.100000 0.02713001
]
293 294
Solucin.
La primera columna de la matriz inversa puede determinarse al efectuar el procedimiento de solucin por sustitucin hacia adelante, con un vector unitario (con el nmero 1 en el primer rengln) como el vector del lado derecho. As, de la ecuacin (10.8), el sistema diagonal inferior es
[ [ [
1 0.0333333
0 1
0 0
0.100000 0.02713001
]{ } { }
d1 d2 d3 1 0 0
T
de donde, por sustitucin hacia adelante se obtiene {D} = [10.03333 0.1009]. Este vector se utiliza como el lado derecho de la ecuacin (10.3), 3 0.1 0.2
]{ } { }
x1 x2 x3 1 = 0.03333 0.1009
T
de donde, por sustitucin hacia atrs, se obtiene {X} = [0.33249 0.00518 0.01008], que es la primera columna de la matriz,
[ A]
]
d1 d2 d3 0 1 0 =
0.100000 0.02713001
]{ } { }
Pgina 16 de 32
{}
]
[ A]
0.33249
0.0049440
Por ltimo, los procedimientos de sustitucin hacia adelante y de sustitucin hacia atrs pueden usarse con { B } = 0 0 1 para obtener {X} = [0.006798 0.004183 0.09988], que es la columna final de la matriz,
T
[ A]
0.33249
0.0049440.006798
]
1
= [I].
294 295
El seudocdigo para generar la matriz inversa se muestra en la figura 10.5. Observe cmo se llama a la subrutina de descomposicin de la figura 10.2, para realizar la descomposicin, y despus se genera la inversa llamando repetidamente el algoritmo de sustitucin con vectores unitarios. El trabajo requerido para este algoritmo se calcula fcilmente como
n
3
+ +
n n
( )
4n 3
(10.22)
descomposicin
n sustituciones
donde, de acuerdo con la seccin 10.1.2 la descomposicin est definida por la ecuacin (10.15) y el trabajo necesario en cada evaluacin del lado derecho requiere n FLOP de multiplicacin/divisin.
2
Pgina 17 de 32
Programa principal que usa algunos de los subprogramas de la figura 10.2 para generar una matriz inversa. Al tenerse una ecuacin de balance para cada parte del sistema, da como resultado un conjunto de ecuaciones que definen el comportamiento de las propiedades en todo el sistema. Estas ecuaciones se interrelacionan, ya que cada ecuacin puede tener una o ms de las variables de las otras ecuaciones. En muchos casos, estos sistemas son lineales y, por lo tanto, de la forma que se trata en este captulo: [ A ]{ X } = { B } (10.23)
295 296
Ahora bien, para las ecuaciones de balance, los trminos de la ecuacin (10.23) tienen una interpretacin fsica definida. Por ejemplo, los elementos de {X} son los valores de la propiedad que
Pgina 18 de 32
{B}
o (recordando la definicin de la multiplicacin matricial del cuadro PT3.2) x 1 = a 11 b 1 + a 12 b 2 + a 13 b 3 x 2 = a 21 b 1 + a 22 b 2 + a 23 b 3 x 3 = a 31 b 1 + a 32 b 2 + a 33 b 3 De esta forma, se ha encontrado que la misma matriz inversa, adems de ofrecer una solucin, tiene propiedades extremadamente tiles. Es decir, cada uno de sus elementos representa la respuesta de una sola parte del sistema a un estmulo unitario de cualquier otra parte de dicho sistema. Observe que estas formulaciones son lineales y, por lo tanto, se satisfacen la superposicin y la proporcionalidad. La superposicin significa que si un sistema est sujeto a varios estmulos (las b), las respuestas se pueden calcular individualmente y los resultados se suman para obtener la respuesta total. La proporcionalidad significa que al multiplicar los estmulos por una cantidad el resultado es la respuesta a esos estmulos multiplicada por la misma cantidad. As, el coeficiente a 11 es una constante de proporcionalidad que da el valor de x1 correspondiente a una cantidad unitaria b1. Este
1 1 1 1 1 1 1 1 1 1
296 297
Pgina 19 de 32
y a13
de la matriz inversa representa el valor de xi debido a la cantidad unitaria bj. Usando el ejemplo de la estructura, el elemento a i j de la matriz inversa representara la fuerza en el miembro i debida a una fuerza unitaria externa en el nodo j. Incluso para sistemas pequeos, dicho comportamiento de interacciones estmulo-respuesta individuales podra no ser intuitivamente obvio. Como tal, la matriz inversa ofrece una poderosa tcnica para comprender las interrelaciones entre las partes componentes de sistemas complicados. Este poder se demostrar en las secciones 12.1 y 12.2.
Cuadro 10.1 Interpretacin de los elementos de la matriz inversa como una medida de mal condicionamiento
Un mtodo para determinar la condicin de un sistema consiste en escalar [A] de tal forma que el elemento mayor en cada rengln sea 1 y despus calcular [A] . Si los elementos de [A] son varios rdenes de magnitud mayores que los elementos de la matriz escalada original, es probable que el sistema est mal condicionado. Se puede obtener cierto conocimiento con este mtodo al recordar que una forma de verificar si una solucin aproximada {X} es aceptable, es sustituyndola en las ecuaciones originales y observar si resultan las constantes originales del lado derecho. Esto equivale a { R } = { B } [ A ]{x } (C10.1.1)
1 1
donde {R} es el residuo entre las constantes del lado derecho y los valores calculados con la solucin {}. Si {R} es pequeo, se concluye que los valores de {} son adecuados. Suponiendo que {X} es X X la solucin exacta que da un residuo cero, entonces {0} = { B } [ A ]{ X } (C10.1.2)
Restando la ecuacin (C10.1.2) de (C10.1.1) resulta { R } = [ A ]{{ X } {}} X Multiplicando ambos lados de esta ecuacin por [A] { X } {} = [ A ] X
1
se obtiene
{ R}
Pgina 20 de 32
est bien condicionado. De modo contrario, si [A] contiene elementos mucho ms grandes que la unidad se concluye que el sistema est mal condicionado. 1. Escalar la matriz de coeficientes [A], de manera que el elemento ms grande en cada rengln sea 1. Se invierte la matriz escalada, y si existen elementos de [A] que sean varios rdenes de magnitud mayores que uno, es posible que el sistema est mal condicionado (vase el cuadro 10.1). 2. Multiplicar la inversa por la matriz de coeficientes original y estimar si el resultado es lo suficientemente cercano a la matriz identidad. Si no es as, esto indica que el sistema est mal condicionado. 3. Invertir la matriz inversa y estimar si el resultado est lo suficientemente cercano a la matriz de coeficientes original. Si no es as, esto de nueva cuenta indica que el sistema est mal condicionado. Aunque estos mtodos llegan a indicar un mal condicionamiento, sera preferible obtener un solo nmero (al igual que el nmero de condicin de la seccin 4.2.3) que sirviera como un indicador del problema. Los intentos que se han hecho para formular tal nmero de condicin matricial estn basados en el concepto matemtico de la norma.
1
297 298
donde la nomenclatura Fe indica que a esta longitud se refiere a la norma euclidiana de [F].
Pgina 21 de 32
X e =
i =1
xi
FIGURA 10.6
298 299
X e =
i =1
xi
o de una matriz,
Pgina 22 de 32
A e =
i =1 j =1
ai j
Para vectores, existen alternativas llamadas normas p que se representan generalmente por X p =
n i =1
| xi |
1 /p
Puede observarse que la norma euclidiana y la norma 2, X2, son idnticas para vectores. Otros ejemplos importantes son
n
X 1 =
i =1
| xi |
que representa la norma como la suma de los valores absolutos de los elementos. Otra es la norma magnitudmxima o norma vector-uniforme. X = mx
1 i n
| xi |
la cual define la norma como el elemento con el mayor valor absoluto. Utilizando un mtodo similar, se pueden desarrollar normas para matrices. Por ejemplo,
n
A 1 = m x
1 j n i =1
| ai j |
Esto es, se realiza una sumatoria de los valores absolutos de los coeficientes para cada columna, y la mayor de estas sumatorias se toma como la norma. Esto se conoce como la norma columnasuma. Una determinacin similar se puede hacer para los renglones, y resulta una matriz-uniforme o norma rengln-suma
n
A = mx
1 j n j =1
| ai j |
Debe observarse que, en contraste con los vectores, la norma 2 y la norma euclidiana para una matriz no son lo mismo. Mientras que la norma euclidiana Ae puede ser fcilmente determinada mediante la ecuacin (10.24), la norma 2 para matrices A2 se calcula as: A 2 = m x
1 /2
donde mx es el mayor eigenvalor de [A] [A]. En el captulo 27 se ver ms sobre eigenvalores. Mientras tanto, el punto importante es que la norma A2, o norma espectral, es la norma mnima y, por lo tanto, proporciona la medida de tamao ms ajustada (Ortega, 1972).
Pgina 23 de 32
A e =
i =1 j =1
ai j
(10.24)
a la cual se le da un nombre especial (la norma de Frobenius). De la misma manera como las normas de vectores, proporciona un valor nico para cuantificar el tamao de [A]. Debe notarse que hay alternativas para las normas euclidiana y de Frobenius (vase cuadro 10.2). Por ejemplo, la norma vector uniforme se define como X = m x
1 i n
| xi |
299 300
Es decir, el elemento con el mayor valor absoluto se toma como la medida del tamao del vector. En forma similar, una norma matricial uniforme o norma rengln-suma se define como
n
A = mx
1 i n j =1
| ai j |
(10.25)
En este caso, se calcula la suma del valor absoluto de los elementos por cada rengln, y la mayor de stas se toma como la norma. Aunque hay ventajas tericas para el uso de ciertas normas, la eleccin algunas veces est influenciada por consideraciones prcticas. Por ejemplo, la norma renglnuniforme es ampliamente usada por la facilidad con que se calcula, y por el hecho de que usualmente proporciona una medida adecuada del tamao de la matriz.
(10.26)
donde Cond [A] se llama nmero de condicin de una matriz. Observe que para una matriz [A], este nmero ser mayor o igual a 1. Se puede mostrar (Ralston y Rabinowitz, 1978; Gerald y Wheatley, 1989) que
X X
Cond [ A ]
A A
Es decir, el error relativo de la norma de la solucin calculada puede ser tan grande como el error relativo de la norma de los coeficientes de [A], multiplicada por el nmero de condicin. Por ejemplo, si los coeficientes de [A] se encuentran a t dgitos de precisin (esto es, los errores de redondeo son del
Pgina 24 de 32
1 1 /2
1 /2 1 /3
1 /3 1 /4
1 /n
1 /( n +1) 1 /(2n )
1 / n 1 /( n +1) 1 /( n +2)
300 301
[ A] =
1 /2 1 /3
1 /2 1 /3 1 /4 1 /3 1 /4 1 /5
Solucin.
Primero, la matriz se normaliza de tal forma que el elemento mximo en cada rengln sea 1.
[ A] =
[ ]
1 1 /2 1 /3 1 2 /3 1 /2 1 3 /4 3 /5
3 3
Sumando cada uno de los renglones el resultado es 1.833, 2.1667 y 2.35. Entonces, el tercer rengln tiene la suma mayor y la norma rengln-suma es A = 1 + 4 + 5 = 2.35 La inversa de la matriz escalada se calcula como
Pgina 25 de 32
[ A]
18 10 60
36 96 30
90 60
Observe que los elementos de esta matriz son mayores que los de la matriz original. Esto tambin se refleja en su norma rengln-suma, la cual se calcula como A = |36|+|96|+|60| = 192 Entonces, el nmero de condicin se calcula como Cond [A] = 2.35(192) = 451.2 El hecho de que el nmero de condicin sea considerablemente mayor que la unidad sugiere que el sistema est mal condicionado. La importancia del mal condicionamiento puede ser cuantificado al calcular c = log 451.2 = 2.65. Las computadoras que usan una representacin de punto flotante IEEE tienen aproximadamente t = log 2 = 7.2 dgitos significativos en base 10 (recuerde la seccin 3.4.1). Por lo tanto, la solucin puede tener errores de redondeo de hasta 10 = 3 10 . Observe que una estimacin como sta casi siempre sobrepredice el error verdadero. Sin embargo, son tiles para alertar al usuario en el caso de que los errores de redondeo puedan resultar significativos. En pocas palabras, el problema al usar la ecuacin (10.26) es el precio computacional requerido para obtener A . Rice (1983) indica algunas posibles estrategias para reducir el problema. Adems, l sugiere una forma alternativa para determinar la condicin del sistema: ejecute la misma solucin en dos diferentes compiladores. Ya que los cdigos resultantes implementan en forma diferente la aritmtica, el efecto de mal condicionamiento debera ser evidente en un experimento como se. Por ltimo, se debe mencionar que los paquetes de software y las bibliotecas, como MATLAB y Mathcad, tienen la capacidad para calcular en forma conveniente la condicin de una matriz. Revisaremos estas capacidades cuando se vean esos paquetes al final del captulo 11.
1 (2.657.2) 5 24
301 302
Pgina 26 de 32
= x 1 x 2 x 3 . Esta solucin se
(10.28)
(10.29)
( ( (
) ) )
( ( (
) ) )
( ( (
) ) )
(10.30)
Pgina 27 de 32
PROBLEMAS
10.1 Utilice las reglas de la multiplicacin de matrices para demostrar que las ecuaciones (10.7) y (10.8) se obtienen de la (10.6). 10.2 a) Use la eliminacin simple de Gauss para descomponer el sistema siguiente, de acuerdo con la descripcin de la seccin 10.1.2. 10x 1 + 2x 2 x 3 = 27
3x 1 6x 2 + 2x 3 = 6.15 x 1 + x 2 5x 3 = 21.5 Despus, multiplique las matrices[L] y [U] resultantes para demostrar que se genera [A]. b) Emplee la descomposicin LU para resolver el sistema. Realice todos los pasos del clculo. c) Tambin resuelva el sistema para un vector alternativo del lado derecho: {B} = [12 18 6]. 10.3 a) Resuelva el sistema de ecuaciones siguiente por medio de la descomposicin LU sin pivoteo. 8x1 + 4x2 x3 = 11 2x1 + 5x2 + x3 = 4 2x1 x2 + 6x3 = 7 b) Determine la matriz inversa. Compruebe sus resultados por medio de verificar que [A] [A]
1 T
= [I].
10.4 Resuelva el sistema de ecuaciones siguiente por medio de la descomposicin LU con pivoteo parcial: 2x1 6x2 x3 = 38 3x1 x2 + 7x3 = 34 8x1 + x2 2x3 = 20
Pgina 28 de 32
= [I].
3 x 6x 2 2x 3 = 61.5 x 1 + x 2 + 5x 3 = 21.5 10.7 Ejecute la descomposicin de Crout sobre el sistema 2x1 6x2 + x3 = 12 x1 + 7x2 x3 = 8 x1 3x2 + 2x3 = 16 Despus, multiplique las matrices [L] y [U] resultantes para determinar que se produce [A]. 10.8 El sistema de ecuaciones que sigue est diseado para determinar concentraciones (las c estn en g/m ) en una serie de reactores acoplados, como funcin de la cantidad de masa que entra a cada uno de ellos (los lados derechos estn en g/da), 15c 1 3c 2 c 3 = 3 800 3c 1 + 18c 2 6c 3 = 1 200 4c 1 c 2 + 12c 3 = 2 350
3
a) Determine la matriz inversa. b) Use la inversa para encontrar la solucin. c) Determine cunto debe incrementarse la tasa de masa de entrada al reactor 3 para inducir un aumento de 10 g/m en la concentracin del reactor 1. d) Cunto se reducira la concentracin en el reactor 3 si la tasa de masa de entrada a los reactores 1 y 2 se redujera en 500 y 250 g/da, respectivamente? 10.9 Determine A e, A1 y A para
3
Pgina 29 de 32
[ A] =
8 9
2 1
10 3 6
15 1
]
0.5 0.25 1 1
303 304
Escale la matriz haciendo que el mximo elemento de cada rengln sea igual a uno. 10.10 Determine las normas Euclidiana y de rengln-suma para los sistemas de los problemas 10.3 y 10.4. Escale las matrices por medio de hacer que el elemento ms grande de cada rengln sea igual a uno. 10.11 Una matriz [A] est definida como sigue
[ A] =
0.125
0.25
0.015625 0.625
Con el uso de la norma rengln-suma, calcule el nmero de condicin y cuntos dgitos sospechosos se generaran con esta matriz. 10.12 a) Determine el nmero de condicin para el sistema siguiente por medio de la norma rengln-suma. No normalice el sistema.
[ ]
1 4 4 9 16 25 9 16 25 36 9 16 25 36 49 16 25 36 49 64 25 36 49 64 81 Cuntos dgitos de precisin se perderan debido a la condicin anmala? b) Repita el inciso a), pero escale la matriz por medio de hacer el elemento ms grande de cada rengln igual a uno. 10.13 Determine el nmero de condicin con base en la norma rengln-suma para la matriz de Hilbert normalizada de 5 5. Cuntos dgitos significativos de precisin se perderan debido a la condicin anmala? 10.14 Adems de la matriz de Hilbert, hay otras matrices que son anmalas de modo inherente. Uno de esos casos es la matriz de Vandermonde, que tiene la forma siguiente:
Pgina 30 de 32
[ ]
x1 x1 1 x2 x2 1 x3 x3 1
2 2 2
a) Determine el nmero de condicin con base en la norma rengln-suma para el caso en que x1 = 4, x2 = 2, y x3 = 7. b) Emplee el software de MATLAB para calcular los nmeros de condicin espectral y de Frobenius. 10.15 Desarrolle un programa amigable para el usuario para hacer la descomposicin LU con base en el seudocdigo de la figura 10.2. 10.16 Realice un programa amigable para el usuario para efectuar la descomposicin LU, que incluya la capacidad de evaluar la matriz inversa. Fundamente el programa en las figuras 10.2 y 10.5. 10.17 Use tcnicas iterativas de refinamiento para mejorar x1 = 2, x2 = 3 y x3 = 8, que son las soluciones aproximadas de 2x 1 + 5x 2 + x 3 = 5 6x 1 + 2x 2 + x 3 = 12 x 1 + 2x 2 + x 3 = 3 10.18 Considere los vectores siguientes:
A B
= =
2i 3j + ak b i + j 4k 3 i + c j + 2k
C =
El vector A es perpendicular al B y al C . Tambin se sabe que B C = 2. Use cualquier mtodo de los estudiados en este captulo para resolver las tres incgnitas, a, b y c. 10.19 Considere los vectores siguientes:
Pgina 31 de 32
A B
=a i +b j +ck = 2 i + j 4k
C = i + 3 j + 2k donde A es un vector desconocido. Si (A B ) + (A C ) = (5 a + 6) i + (3 b 2) j + ( 4 c + 1) k use cualquier mtodo de los que aprendi en este captulo para resolver para las tres incgnitas, a, b y c. 10.20 Deje que la funcin est definida en el intervalo [0, 2] como sigue: f( x) =
a x +b , 0 x 1 c x +d , 1 x 2
Determine las constantes a, b, c y d, de modo que la funcin f satisfaga lo siguiente: f (0) = f (2) = 1. f es continua en todo el intervalo. a + b = 4.
Obtenga y resuelva un sistema de ecuaciones algebraicas lineales con una forma matricial idntica a la ecuacin (10.1). 10.21 a) Cree una matriz de Hilbert de 33. sta ser la matriz [A]. Multiplique la matriz por el vector columna {x} = [1, 1, 1] . La solucin de [A]{x} ser otro vector columna {b}. Con el uso de cualquier paquete numrico y la eliminacin de Gauss, encuentre la solucin de [A]{x} = {b} por medio del empleo de la matriz de Hilbert y el vector {b} que calcul. Compare el resultado con su vector {x} conocido. Utilice precisin suficiente al mostrar los resultados con objeto de permitir detectar imprecisiones. b) Repita el inciso a) con el uso de una matriz de Hilbert de 77. c) Repita el inciso a) con el uso de una matriz de Hilbert de 1010.
T
Pgina 32 de 32