96 3.3. Número de condición de una matriz. Consideremos el sistema Ax = b, de solución u. Queremos controlar qué cambios se producen en la solución cuando hacemos pequeños cambios en las componentes de b o de A. Empecemos por tomar un cambio ∆b en b. Entonces la solución cambiará a u + ∆u, y se tiene A(u + ∆u) = b + ∆b, A∆u = ∆b. Por tanto, el cambio en la solución se estima en A−1 ∆b. Si tomamos una norma vectorial y la norma matricial subordinada, entonces ° ° k∆uk ≤ °A−1 ° k∆bk . Por otro lado, kbk ≤ kAk kuk, de donde 1 kuk ≤ kAk . kbk Medimos el error relativo, y obtenemos ° ° k∆bk k∆uk ≤ kAk °A−1 ° . kuk kbk Ası́, la variación en el error relativo de la solución está asociada a la cantidad kAk kA−1 k. Definición 3.3.1. Sea k·k una norma matricial subordinada y A una matriz inversible. Entonces el número ° ° cond(A) = kAk °A−1 ° se denomina número de condición o condicionamiento de la matriz A respecto a k·k. No hay problema en extender la definición a cualquier norma matricial. Consideremos ahora cambios en la matriz A. Teorema 3.3.2. Sea k·k norma matricial subordinada, A matriz inversible y b 6= 0. Si Au = b, (A + ∆A)(u + ∆u) = b entonces k∆Ak k∆uk ≤ cond(A) . ku + ∆uk kAk Demostración. De Au = b llegamos a ∆A(u + ∆u) + A∆u = 0, ∆u = −A−1 (∆A)(u + ∆u). Normas de vectores y matrices. 97 Entonces ° ° k∆uk ≤ °A−1 ° k∆Ak ku + ∆uk , k∆uk k∆Ak ≤ cond(A) . ku + ∆uk kAk Teorema 3.3.3. Sea k·k norma matricial subordinada, A matriz inversible y k∆Ak < 1/ kA−1 k. Si (A + ∆A)(u + ∆u) = b + ∆b entonces k∆uk cond(A) ≤ kuk 1 − cond(A) k∆Ak kAk µ k∆bk k∆Ak + kbk kAk ¶ . Demostración. [BF98, p.468]. Proposición 3.3.4. Sea k·k norma matricial subordinada y A una matriz inversible. Entonces 1. cond(A) ≥ 1. 2. cond(A) = cond(A−1 ). 3. cond(λA) = cond(A) para todo λ ∈ K − {0}. Demostración. Como la norma es subordinada, ° ° ° ° 1 = kIk = °AA−1 ° ≤ kAk °A−1 ° = cond(A). Por otro lado, ° ° ° ° cond(A) = kAk °A−1 ° = °A−1 ° kAk = cond(A−1 ). Si λ es no nulo, entonces ° ° ¯ ¯° ° cond(λA) = kλAk °(λA)−1 ° = |λ| kAk ¯λ−1 ¯ °A−1 ° = cond(A). Proposición 3.3.5. Sea A una matriz inversible. Entonces s λn (A∗ A) cond2 (A) = λ1 (A∗ A) donde λn (A∗ A), λ1 (A∗ A) son,respectivamente, los autovalores mayor y menor de la matriz A∗ A. 98 Demostración. Como A es regular, la matriz A∗ A es hermitiana y sus autovalores reales son todos positivos. Si w ∈ V , no nulo, entonces w∗ A∗ Aw = kAwk22 > 0 porque A es inversible. Si λ es autovalor de A∗ A, con v autovector asociado, entonces 0 < v∗ A∗ Av = λ kvk22 de donde λ > 0. Sabemos que kAk22 = ρ(A∗ A) = λn (A∗ A) y ° −1 °2 °A ° = ρ((A−1 )∗ A−1 ) = ρ(A−1 (A−1 )∗ ) = ρ((A∗ A)−1 ) = 2 1 . λ1 (A∗ A) Lema 3.3.6. Sea A matriz hermitiana no singular, con autovalores λ1 ≤ λ2 ≤ . . . ≤ λn . Entonces λn cond2 (A) = . λ1 Demostración. Recordemos que ρ(A−1 ) = 1 . λ1 Entonces ° ° λn cond2 (A) = kAk2 °A−1 °2 = ρ(A)ρ(A−1 ) = . λ1 Nota 3.3.7. Sea k·k norma matricial subordinada y A matriz hermitiana. Entonces ° ° cond(A) = kAk °A−1 ° ≥ ρ(A)ρ(A−1 ) = cond2 (A). Entonces, para matrices hermitianas, cond2 es el menor de todos. Lema 3.3.8. Si U es unitaria y A es una matriz arbitraria, entonces cond2 (A) = cond2 (U A) = cond2 (AU ) = cond2 (U ∗ AU ), es decir, cond2 es invariante por transformaciones unitarias, y cond2 (U ) = 1. Demostración. Nota 3.3.9. 1. El número de condición de una matriz es siempre un número mayor que 1, por lo que el sistema Ax = b estará tanto mejor condicionado cuanto más próximo a 1 esté dicho cond(A). 2. Si A es una matriz unitaria, el sistema estará siempre bien condicionado respecto a cond2 . Normas de vectores y matrices. 99 Ejemplo 3.3.10. Consideremos el 10 7 A= 8 7 sistema Ax = b con 7 8 7 5 6 5 ,b = 6 10 9 5 9 10 32 23 33 31 y supongamos que tenemos una variación en b dada por 0,1 −0,1 ∆b = 0,1 . −0,1 La solución exacta del sistema es 1 1 u= 1 1 mientras que la del sistema alterado Ax = b + ∆b es 9,2 −12,6 . u + ∆u = 4,5 −1,1 Para la norma k·k2 calculamos los errores relativos y tenemos k∆uk2 k∆bk2 ≈ 8,2, ≈ 0,003. kuk2 kbk2 Esto era de esperar porque cond2 (A) ≈ 2984,1. Nota 3.3.11. El cálculo del número de condición a partir de la definición implica a la inversa de la matriz, por lo que no es un buen método. En la práctica, se suele calcular como subproducto del proceso de resolución de un sistema. También se suelen dar cotas a kA−1 k Nota 3.3.12. Una regla del pulgar”sobre la influencia del número de condición sobre la validez de la solución es la siguiente. Supongamos que se usa eliminación gaussiana con pivoteo parcial sobre un sistema bien escalado Ax = b con aritmética de t-dı́gitos en coma flotante. Supongamos también que no hay otras fuentes de error. Entonces, si cond(A) es del orden de 10p , la solución calculada es precisa con t − p dı́gitos significativos. En otras palabras, esperamos una pérdida de unos p dı́gitos. Por ejemplo, consideremos el siguiente sistema: ,835x +,667y = ,168 ,333x +,266y = ,067. 100 Entonces µ ¶ −266000 667000 A = , kAk1 = 1,168, kA−1 k1 = 1502000, 333000 −835000 cond1 (A) = 1754336 ≈ 1,7 × 106 . −1 El valor de cond1 (A) no es tan importante como su orden de magnitud. Lo anterior indica que el cambio relativo en la solución puede ser del orden de un millón de veces el cambio relativo en A. Ası́, si usamos eliminación gaussiana con 8 dı́gitos para resolver el sistema, únicamente podemos esperar t − p = 8 − 6 = 2 dı́gitos significativos. Esto no significa que podamos tener suerte y alcancemos mayor precisión.