¿Cómo aproximar el número de condición de una matriz grande?


9

¿Cómo calculo el número de condición de una matriz grande G , si G es una combinación de transformadas de Fourier F (no uniforme o uniforme), diferencias finitas R y matrices diagonales S ?

Las matrices son muy grandes y no están almacenadas en la memoria y solo están disponibles como funciones.

En particular, tengo la siguiente matriz:

Gμ=SHFHFS+μRHR

Quiero investigar la relación entre μ y el número de condición k(Gμ) .

¿Asumo que uno necesita algún tipo de enfoque iterativo? Óptimamente habría algún código de MATLAB disponible.


1
Gμ

Respuestas:


11

MATLAB tiene un par de funciones "exactas" para esto, condy rcondesta última devuelve un recíproco del número de condición. La función aproximada de Matlab condestse describe más detalladamente a continuación.

A menudo, las estimaciones del número de condición se generan como subproductos de la solución de un sistema lineal para la matriz, por lo que es posible que pueda aprovechar las estimaciones del número de condición en otro trabajo que de todos modos necesite hacer. Vea aquí una breve descripción de cómo se calculan las estimaciones. También los comentarios de la documentación de Sandia Labs AztecOO (ver Sección 3.1) que los estimadores de número de condición opcional están disponibles de solucionadores iterativos (usando la matriz Lanczos tridiagonal generada con Gradientes Conjugados o la matriz Hessenburg generada con GMRES Reiniciados).

Dado que sus matrices son "muy grandes" y "solo están disponibles como funciones", el enfoque lógico sería un método que aprovechara una solución o variante de gradiente conjugado.

Un artículo reciente de arXiv.org Aproximaciones de valor propio extremas no estacionarias en soluciones iterativas de sistemas lineales y estimadores de error relativo propone tal enfoque y tiene algunas citas de la literatura anterior.

Ahora que miro, este foro tiene una serie de Preguntas anteriores estrechamente relacionadas (no todas con Respuestas, pero marque Comentarios):

Estimar valores propios extremos con CG

Estimación de números de condición para matrices muy grandes.

El algoritmo más rápido para calcular el número de condición de una matriz grande en Matlab / Octave


condestA1A11A1A11

Como su matriz es aparentemente hermitiana y positiva definida, tal vez el número de condición de 2 normas sea de mayor interés. El problema es estimar la relación entre los valores propios más grandes y los más pequeños (absolutos). El desafío es algo paralelo al caso de la norma 1 en que generalmente se puede obtener fácilmente una buena estimación del valor propio más grande , pero estimar el valor propio más pequeño resulta más difícil.

Aunque el objetivo de que no es SPD (e incluso no cuadrados) de los casos, este trabajo arXiv.org reciente, fiable iterativo Condición-Número de estimación , da una buena visión general del problema de estimación menor valor propio y una prometedora línea de ataque de un subespacio de Krylov- método (LSQR) que equivale a gradientes conjugados en el caso de SPD.


Gracias por su respuesta. ¿Cómo obtengo el número de condición como producto secundario de un solucionador de gradiente conjugado?
Stiefel

@Stiefel: Hay un artículo de 1992 sobre el cálculo aproximado de valores propios extremos y el número de condición de matrices no singulares por Lei Guang-yao. Déjame ver si puedo encontrar una mejor referencia (no detrás de un muro de pago).
hardmath

@Stiefel: se agregaron algunos enlaces. También puede estar interesado en consultar Google Books (o una biblioteca) para conocer los métodos de solución iterativa de Owe Axelsson (1996), esp. Cap. 13 La tasa de convergencia del método de gradiente conjugado , aunque se hace hincapié en obtener mejores estimaciones del número de iteraciones necesarias para la convergencia que el número de condición solo proporciona.
hardmath

1
@Stiefel Con un nombre como el tuyo, deberías enseñarnos sobre el método CG :) Ver en.wikipedia.org/wiki/Eduard_Stiefel
stali
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.