¿Existe un método para resolver sistemas lineales de la forma donde es una matriz SPD fija y son matrices diagonales positivas?
Por ejemplo, si cada es escalar, es suficiente para calcular la SVD de . Sin embargo, esto se rompe para el general debido a la falta de conmutatividad.
Actualización : las respuestas hasta ahora son "no". ¿Alguien tiene alguna intuición interesante de por qué? Una respuesta sin respuesta significa que no hay una forma no trivial de comprimir la información entre dos operadores que no viajan diariamente. No es terriblemente sorprendente, pero sería genial entenderlo mejor.
linear-algebra
algorithms
performance
complexity
Geoffrey Irving
fuente
fuente
Respuestas:
Las respuestas positivas más cercanas a su pregunta que pude encontrar son las perturbaciones diagonales dispersas (ver más abajo).
Dicho esto, no conozco ningún algoritmo para el caso general, aunque hay una generalización de la técnica que mencionó para los cambios escalares de las matrices SPD a todas las matrices cuadradas:
Dada cualquier matriz cuadrada , existe una descomposición de Schur A = U T U H , donde U es unitaria y T es triangular superior, y A + σ I = U ( T + σ I ) U H proporciona una descomposición de Schur de A + σ I . Por lo tanto, su idea de precomputación se extiende a todas las matrices cuadradas a través del algoritmo:A A=UTUH U T A+σI=U(T+σI)UH A+σI
Esta línea de razonamiento se reduce al enfoque que mencionó cuando es SPD ya que la descomposición de Schur se reduce a un EVD para matrices normales, y el EVD coincide con el SVD para matrices definidas positivas de Hermit.A
Respuesta a la actualización: hasta que tenga una prueba, que no tengo, me niego a afirmar que la respuesta es "no". Sin embargo, puedo dar algunas ideas de por qué es difícil, así como otro subcampo donde la respuesta es sí.
La dificultad esencial es que, a pesar de que la actualización es diagonal, todavía está en rango completo, por lo que la herramienta principal para actualizar un inverso, la fórmula de Sherman-Morrison-Woodbury , no parece ayudar. Aunque el caso de desplazamiento escalar también es de rango completo, es un caso extremadamente especial ya que conmuta con cada matriz, como mencionó.
Dicho esto, si cada era escasa, es decir, cada uno tenía O ( 1 ) nonzeros, entonces la fórmula de Sherman-Morrison-Woodbury produce una solución de O ( n 2 ) con cada par { D , b } . Por ejemplo, con un único distinto de cero en la entrada diagonal j , de modo que D = δ e j e H j :D O(1) O(n2) {D,b} j D=δejeHj
donde es el j ésimo vector base estándar .ej j
Otra actualización: debo mencionar que probé el preacondicionador que @GeoffOxberry sugirió en algunas matrices SPD 1000 × 1000 aleatorias usando PCG y, tal vez no sea sorprendente, parece reducir en gran medida el número de iteraciones cuando | El | D | El | 2 / | El | A | El | 2 es pequeño, pero no cuando es O ( 1 ) o mayor.A−1 1000×1000 ||D||2/||A||2 O(1)
fuente
Si es diagonalmente dominante para cada i , entonces el trabajo reciente de Koutis, Miller y Peng (ver el sitio web de Koutis para el trabajo sobre matrices simétricas diagonalmente dominantes) podría usarse para resolver cada sistema en O ( n 2 log ( n ) ) tiempo (en realidad O ( m log ( n ) ) tiempo, donde m es el número máximo de entradas distintas de cero en ( D i + A ) sobre todo(Di+A) i O(n2log(n)) O(mlog(n)) m (Di+A) , para que puedas aprovechar la escasez también). Entonces, el tiempo total de ejecución sería O ( n 2 log ( n ) k ) , que es mejor que elenfoque O ( n 3 k ) de resolver cada sistema ingenuamente usando álgebra lineal densa, pero un poco peor que el tiempo de ejecución cuadrático lo pides.i O(n2log(n)k) O(n3k)
Escasez significativa en para todos i podría ser explotada por solucionadores dispersas para producir un O ( n 2 k ) algoritmo, pero supongo que si había escasez significativa, entonces habría mencionado.(Di+A) i O(n2k)
También puede usar como preacondicionador para resolver cada sistema utilizando métodos iterativos y ver cómo funciona.A−1
Respuesta a la actualización : @JackPaulson hace un gran punto desde el punto de vista de álgebra lineal numérica y algoritmos. Me centraré en los argumentos de complejidad computacional.
La complejidad computacional de la solución de sistemas lineales y la complejidad computacional de la multiplicación de matrices son esencialmente iguales. (Consulte la teoría de la complejidad algebraica ). Si puede encontrar un algoritmo que pueda comprimir la información entre dos operadores que no viajan (ignorando la parte semidefinida positiva) y resolver directamente la colección de sistemas que propone en tiempo cuadrático en , entonces es es probable que pueda usar dicho algoritmo para hacer inferencias sobre una multiplicación de matriz más rápida. Es difícil ver cómo se podría usar una estructura semidefinida positiva en un método denso y directo para que los sistemas lineales disminuyan su complejidad computacional.n
Al igual que @JackPaulson, no estoy dispuesto a decir que la respuesta es "no" sin una prueba, pero dadas las conexiones anteriores, el problema es muy difícil y de interés para la investigación actual. Lo mejor que podría hacer desde un punto de vista asintótico sin aprovechar una estructura especial es una mejora en el algoritmo de Coppersmith y Winograd, obteniendo un algoritmo , donde α ≈ 2.375 . Ese algoritmo sería difícil de codificar y probablemente sería lento para matrices pequeñas, porque el factor constante que precede a la estimación asintótica es probablemente enorme en relación con la eliminación gaussiana.O(nαk) α≈2.375
fuente
Se puede usar una expansión de Taylor de primer orden para mejorar la convergencia sobre el retraso simple. Supongamos que tenemos un preacondicionador (o factores para una resolución directa) disponible para , y queremos utilizarlo para el preacondicionamiento A . Podemos calcularA+D A
fuente