Solución:
No tengo idea de lo que está pasando, pero tu conjetura no es correcta. Quizás esto sea más transparente en la versión compleja. Considere $$ A = begin {pmatrix} i & a \ 0 & -i end {pmatrix}, quad a> 0. $$ Esta matriz ya está en forma (compleja) de Schur, y el procedimiento obvio para hacer que los valores propios sean reales y similares en espíritu a lo que usted propone sería hacer que las entradas diagonales sean reales (es decir, hacer que sean iguales a cero aquí). Sin embargo, esto no es óptimo: también podemos lograr un espectro real estableciendo $ a_ {21} = b $, $ b> 1 / a $, y de hecho esta es una perturbación muy pequeña si $ a $ fuera grande. (Entonces, el mensaje general es que incluso los valores propios que no están cerca del eje real pueden necesitar solo una pequeña perturbación para llegar allí).
Una versión real de este ejemplo también funciona, simplemente se vuelve algo más desordenada computacionalmente. Tome $$ A = begin {pmatrix} 0 & 1 & 0 & 0 \ -1 & 0 & a & 0 \ 0 & 0 & 0 & 1 \ 0 & 0 & -1 & 0 end {pmatrix}, quad a> 0. $$ Su propuesta es eliminar los $ -1 $, pero también podemos obtener valores propios reales poniendo $ a_ {32} = b $ siempre que $ ab> 4 $.
Otro ejemplo contrario a la pregunta que muestra cómo se pueden comportar los valores propios complejos inestables: Sea $$ A = left ( begin {matrix} 0 & 1 & 0 & dots & 0 \ 0 & 0 & 1 & dots & 0 \ vdots & ddots & ddots & ddots & vdots \ 0 & dots & dots & 0 & 1 \ 2 ^ {- n} & 0 & dots & dots & 0 end {matrix} right) $$ sea $ n times n $ matriz con unos en la primera superdiagonal, $ 2 ^ {- n} $ en la entrada inferior izquierda y ceros en caso contrario. Entonces, para $ n $ grandes, la matriz $ A $ está exponencialmente cercana a una matriz nilpotente $ B $ (con la entrada inferior izquierda establecida en cero) que, por lo tanto, solo tiene cero como valor propio, en particular, espectro puramente real. Los valores propios de $ A $, sin embargo, se distribuyen uniformemente en el círculo unitario. Esto significa que una modificación exponencialmente pequeña de la matriz da como resultado un gran salto en el espectro. Sin embargo, la matriz más cercana conjeturada $ A_s $ está en la norma espectral $ lVert A_s-B rVert sim 1 $ lejos de $ B $.
Vanni Noferini y yo hemos publicado un e-print arxiv, más cercano $ Omega $-matriz estable a través de la optimización de Riemann, en la que también abordamos este problema (en la sección 7.5).
Resumen rápido de nuestros hallazgos:
- No parece haber una solución simple de forma cerrada. En particular, no puede obtener la solución simplemente truncando la forma de Schur o la descomposición propia de $ A $.
- Proponemos una interesante reformulación del problema. Es decir, deja $ operatorname {triu} $ ser el operador que devuelve la parte triangular superior de una matriz (diagonal incluida)
$$ operatorname {triu} (A) _ {ij} = begin {cases} A_ {ij} & i leq j, \ 0 & i> j end {cases} $$
y $ operatorname {tril} (A) = A – operatorname {triu} (A) $ el que devuelve su parte triangular inferior (diagonal excluida). Entonces la matriz más cercana a $ A $ con valores propios reales (devueltos ya en la descomposición de Schur) es $ B = Q operatorname {triu} (Q ^ * AQ) Q ^ * $, donde la matriz ortogonal $ Q $ resuelve
$$ Q = arg min_ {Q in O_n} | operatorname {tril} (Q ^ * AQ) | _F ^ 2. $$
En esta reformulación, la función objetivo es una función suave simple y agradable: es solo la suma de cuadrados de las entradas triangulares estrictamente inferiores de $ Q ^ * AQ $. Además, esta formulación tiene una dimensión más pequeña (la variedad de matrices ortogonales tiene dimensión $ frac {n (n-1)} {2} $ en vez de $ n ^ 2 $) y restricciones más simples (“$ Q $ es ortogonal “es más fácil de tratar numéricamente que” todos los valores propios de $ B $ Son reales”). - Desafortunadamente, este problema (en ambas formulaciones, la original y la alternativa) no es convexo y tiene múltiples minimizadores locales. En problemas similares, el número de minimizadores crece exponencialmente con la dimensión $ n $, y creemos que esto también se aplica a este problema.
- Sin embargo, el código para la optimización en matrices múltiples se puede utilizar para calcular un minimizador (local) numéricamente de una manera muy rápida, al menos para matrices pequeñas (hasta $ n aproximadamente 50 $). Nuestro código Matlab está disponible.
- Ninguno de los minimizadores sugeridos por las respuestas anteriores para el $ 3 veces 3 $ y $ 4 veces 4 $ los ejemplos en este hilo son mínimos globales; podemos vencerlos a todos. Para matrices que son tan pequeñas, al repetir el procedimiento de minimización con varios puntos de partida se obtienen solo unos mínimos locales, por lo que la evidencia numérica sugiere que las matrices que calculamos en la Sección 7.5 son minimizadores globales. Por ejemplo, para la matriz
$$ A = begin {bmatrix} 1 & 1 & 0 \ -1 & 0 & 0 \ 0 & 0 & 0 end {bmatrix} $$
en la pregunta original, nuestro método calcula el minimizador
$$ B approx begin {bmatrix} 1.2110 & 0.7722 & -0.0962 \ -0.7722 & -0.2416 & -0.0962 \ -0.0962 & 0.0962 & 0.0306 \ end {bmatrix}, $$
con $ | AB | _F = 0.4946 $. - No es difícil demostrar que para cada minimizador (local) $ B $, $ operatorname {Tr} B = operatorname {Tr} A $; de lo contrario, se podría construir una matriz más cercana $ B + ( operatorname {Tr} A – operatorname {Tr} B) frac {1} {n} I $.
- Las matrices con valores propios reales distintos tienen una vecindad formada por matrices con valores propios reales distintos: por lo tanto, un minimizador (local) $ B $ no puede tener valores propios distintos. Numéricamente, a menudo los minimizadores tienen valores propios con multiplicidades elevadas. Por ejemplo, en el ejemplo anterior $ B $ tiene un valor propio triple en $ 1/3 $.
- No parece fácil extender los resultados a otras normas matriciales.
- Comenzamos nuestra investigación pensando en este problema, pero luego nos sorprendió gratamente descubrir que la técnica se puede aplicar también a un problema más difícil que ya había sido estudiado en la literatura sobre álgebra lineal numérica y teoría de control, el de encontrar el matriz estable de Hurwitz más cercana. Y, de manera más general, se puede ampliar para resolver numéricamente el problema de encontrar
$$ B = arg min_ {S_ Omega} | BA | _F, $$
dónde $ S_ Omega $ es el conjunto de todas las matrices (reales o complejas) con todos los valores propios en un conjunto cerrado dado $ Omega $. Otro buen ejemplo de cómo procrastinar y pensar en las preguntas de Mathoverflow puede conducir a veces a una investigación útil. 🙂