¿Cuáles son los síntomas del mal acondicionamiento cuando se usan métodos directos?

14

Supongamos que tenemos un sistema lineal y no sabemos nada sobre su condicionamiento y no tenemos información preliminar sobre la solución. Aplicamos ciegamente la eliminación gaussiana y obtenemos alguna solución X . ¿Es posible determinar si esta solución es confiable (es decir, que el sistema está bien acondicionado) sin un análisis preliminar exhaustivo de la matriz ? ¿La magnitud de los pivotes proporciona información confiable?

Y, en general, ¿cuáles son las principales pautas para detectar mal estado "sobre la marcha"?

faleichik
fuente

Respuestas:

13

¿Cuándo está mal acondicionada una matriz ? Depende de la precisión de la solución que está buscando, tanto como "la belleza está en el ojo del espectador" ...

¿Puede ser su pregunta mejor reformulada ya que hay estimadores de números de condición baratos y robustos basados ​​en la factorización ?LU

Suponiendo que esté interesado en el problema general real (denso, no simétrico) en aritmética de doble precisión, le sugiero que utilice el solucionador experto de LAPACK DGESVX que proporciona una estimación de la condición en forma de su recíproco, . Como beneficio adicional, también tiene otras ventajas como el equilibrio / equilibrio de ecuaciones, el refinamiento iterativo, los límites de error hacia adelante y hacia atrás. Por cierto, el mal condicionamiento patológico ( κ ( A ) > 1 / ϵ ) se señala como un error mediante .RCOND1/ /κ(UN)κ(UN)>1/ /ϵINFO>0

Entrando en más detalle, LAPACK estima que el número de condición en el 1-norma (o -norma, si se te plantea un T x = b ) a través de DGECON . El algoritmo subyacente se describe en el césped 36: "Soluciones triangulares robustas para su uso en la estimación de la condición" .UNTX=si

Tengo que confesar que no soy un experto en el área, pero mi filosofía es: "si es lo suficientemente bueno para LAPACK, es para mí".

Stefano M
fuente
8

La solución de un sistema de ecuaciones mal condicionado con una matriz de la norma 1, un lado aleatorio a la derecha de la norma 1 tendrá con alta probabilidad una norma del orden del número de condición. Por lo tanto, calcular algunas de estas soluciones le dirá lo que está sucediendo.

Arnold Neumaier
fuente
De hecho, esto es lo que DGECON está haciendo, con la delicadeza agregada de refinar iterativamente la dirección de búsqueda para maximizar el resultado, y usar un solucionador triangular personalizado (no los BLAS) para no alterar las cosas por errores de aproximación. El costo computacional de DGECON es, por lo tanto, comparable a su simple prueba. +1 por recordarnos el significado simple de las normas de la matriz y el número de condición. Debería ser interesante averiguar si DGECON es realmente más robusto de una simple verificación aleatoria.
Stefano M
Teniendo en cuenta que el número de condición de resolver coincide con el número de condición de computación A x, ¿es suficiente multiplicar la matriz escalada con esos vectores aleatorios en lugar de la resolución real A x = b ? Ax=bAxAx=b
faleichik
2
@faleichik Seguro que no: el truco aquí es escalar para que A = 1 y κ ( A ) = A A - 1= A - 1 . Por supuesto, al ser este álgebra lineal, no es necesario escalar realmente A sino solo A x ... sin embargo, primero debe calcular A . Su argumento inverso requeriría calcular primero A - 1AA=1κ(A)=AA1=A1AAxUNUN-1que nos estamos esforzando por evaluar.
Stefano M
5

Es casi imposible saber si su sistema está mal condicionado por un solo resultado. A menos que tenga alguna previsión sobre el comportamiento de su sistema (es decir, sepa cuál debería ser la solución), no hay mucho que pueda decir de una sola solución.

Dicho esto, se puede obtener más información si resuelve más de un sistema con la misma . Supongamos que tiene un sistema de la forma A x = b . Para una A específica que no tiene conocimiento previo sobre su acondicionamiento, puede realizar la siguiente prueba: UNUNX=si

  1. Resuelva para un vector específico del lado derecho b . UNX=sisi
  2. Perturbar el vector del lado derecho con donde | El | ϵ | El | es muy pequeño en comparación con | El | b | El | .sinortemiw=si+εEl |El |ϵEl |El |El |El |siEl |El |
  3. Resuelve .UNXnortemiw=sinortemiw
  4. Si su sistema está bien acondicionado, su nueva solución debería estar bastante cerca de su solución anterior (es decir, debería ser pequeña). Si observa un cambio dramático en su nueva solución (es decir, | | x - x n e w | | es grande), entonces su sistema probablemente esté mal acondicionado. El |El |X-XnortemiwEl |El |El |El |X-XnortemiwEl |El |

Es posible que deba resolver varios sistemas lineales con diferentes vectores del lado derecho para darle una mejor indicación de si el sistema está mal acondicionado. Por supuesto, este proceso es un poco costoso ( operaciones para la primera solución y operaciones Θ ( n 2 ) para cada solución sucesiva, suponiendo que su solucionador directo guarde sus factores). Si su matriz A es bastante pequeña, esto no es un problema. Si es grande, es posible que no desee hacer esto. En cambio, es mejor que calcules el número de condición | El | A | El | | El | A - 1 |Θ(norte3)Θ(norte2)en una norma convenienteEl |El |UNEl |El |El |El |UN-1El |El |

Paul
fuente
2
Su reclamo está extremadamente lejos de la verdad. Incluso si A es denso, A puede factorizarse una vez con el trabajo O ( n 3 ) y luego cada resolución requiere solo trabajo O ( n 2 ) . Θ(knorte3)UNUNO(norte3)O(norte2)
Jack Poulson
@JackPoulson: Tienes toda la razón ... Supongo que me he separado por completo. No se preocupe :) Actualizaré mi respuesta
Paul
El |El |UNX-siEl |El |
El |El |UNEl |El |El |El |XEl |El |
UN
@ Reid.Atcheson: En realidad no. La solución aproximada a un sistema mal acondicionado aún puede producir un pequeño residuo. Esto realmente no le da ninguna indicación de cuán lejos está de la verdadera solución.
Paul
1
ε si. Todo es relativo en esta área ... La mayoría de los lectores lo sabrán, pero alguien podría confundirse en aguas peligrosas.
Stefano M