2 votos

¿Es correcto mi uso de la eigendecomposición aquí?

Estoy explorando diferentes técnicas para resolver eficientemente algunas ecuaciones matriciales. Mi situación es que tengo una matriz $\textbf{H} = \textbf{J}^T \textbf{J}$ , donde $\textbf{J}$ es una matriz sin cualidades especiales. A partir de esto, primero tengo que calcular $\mathrm{tr}(\textbf{H}^{-1})$ y luego resuelvo $(\textbf{H}+\lambda \textbf{I})\vec{\delta} = \vec{g}$ , donde $\vec{g}$ es conocido, utilizando repetidamente varios valores diferentes de $\lambda$ . (Si ayuda, todos los valores son reales aquí).

Si lo he entendido bien, $\textbf{H}$ se garantiza que es simétrica y semidefinida positiva. Por lo tanto, sé que puedo utilizar una descomposición cholesky o LDLT para cada uno de los cálculos, sin embargo prefiero no realizar tantas descomposiciones. ¿Estoy en lo cierto si digo que, como $\textbf{H}$ es simétrica y real, que puedo realizar una eigendecomposición sobre ella para obtener $\textbf{H} = \textbf{Q}\mathbf{\Lambda}\textbf{Q}^{-1}$ para todos $\textbf{H}$ ? Y si es así, ¿es correcto lo siguiente?

$$\mathrm{tr}(\textbf{H}^{-1}) = \sum_i \frac{1}{\mathbf{\Lambda}_i}$$ $$\textbf{H}+\lambda \textbf{I} = \textbf{Q}(\mathbf{\Lambda}+\lambda\textbf{I})\textbf{Q}^{-1}$$ $$\vec{\delta} = \vec{g}\textbf{Q}(\mathbf{\Lambda}+\lambda\textbf{I})^{-1}\textbf{Q}^{-1}$$

Por último, existe una variación de este algoritmo que utiliza $\textrm{diag}(\mathbf{H})$ en lugar de $\mathbf{I}$ . ¿Puedo realizar una eigendecomposición similar en $\textbf{H}+\lambda \textrm{diag}(\textbf{H})$ para obtener un factor constante $\textbf{Q}$ y los valores propios para todos los valores de $\lambda$ con una sola descomposición?

Aunque me doy cuenta de que las eigendecomposiciones son mucho más lentas que una descomposición LDLT, creo que la transformación anterior me permitiría realizar un número significativamente menor de descomposiciones y, por tanto, espero que mejore la eficiencia de este algoritmo.

1voto

sdfwer Puntos 13

Si $D = diag(H)$ es positivo, y que $K = D^{-1/2} H D^{-1/2}$ que de nuevo es semidefinido positivo. Entonces $(H + \lambda D)^{-1} = D^{-1/2} (K + \lambda I)^{-1} D^{-1/2}$ , así que si haces la eigendecomposición $K = Q \Lambda Q'$ con $Q$ ortogonal se obtiene $(H+\lambda D)^{-1} = (D^{-1/2} Q) (\Lambda + \lambda I)^{-1} (D^{-1/2} Q)'$ .

1voto

Anu Puntos 191

Yo aconsejaría no computar $H$ . Más bien, calcula la SVD de $J$ es decir, $J = U \Sigma V^T$ Así que $$H = J^T J = V \Sigma^T U^T U \Sigma V^T = V \Sigma^T \Sigma V^T.$$ Si $J$ es cuadrado o alto, entonces $\Lambda = \Sigma^2$ . De lo contrario, se obtienen ceros adicionales (que no afectan a la traza, pero en este caso $H$ sería singular).

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X