3.3. Número de condición de una matriz.

Anuncio
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.
Descargar