Hay dos problemas separados aquí.
- Cómo utilizar solucionadores eficientes para con el fin de aplicar un 1 / 2 b .Ax=bA1/2b
- Cómo calcular el determinante.
Las respuestas cortas son 1) usar aproximaciones de funciones de matriz racional, y 2) no, pero de todos modos no es necesario. Abordo ambos problemas a continuación.
Matriz aproximaciones de raíz cuadrada
La idea aquí es convertir una aproximación de función racional para funciones escalares en una aproximación de función racional para funciones de matriz.
Sabemos que existen funciones racionales que pueden aproximarse extremadamente bien a la función de raíz cuadrada,
x−−√≈r(x):=a1x+b1+a2x+b2+⋯+aNx+bN,
bi[m,M]O(logMm)ai−bi
r(A)=a1(A+b1I)−1+a2(A+b2I)−1+⋯+aN(A+bNI)−1.
A
||A1/2−r(A)||2=||U(Σ1/2−r(Σ))U∗||2,=maxi|σi−−√−r(σi)|
A=UΣU∗A
Denotando el número de condición de por , podemos aplicar a cualquier tolerancia deseada mediante la realización de soluciones laplacianas gráficas desplazadas positivamente de la forma,
κ A 1 / 2 b O ( log κ ) ( A + b I ) x = b .AκA1/2bO(logκ)
(A+bI)x=b.
Estas soluciones se pueden hacer con su solucionador laplaciano de gráficos favorito: prefiero las técnicas de tipo multigrid, pero la del documento que cita también debería estar bien. El adicional solo ayuda a la convergencia del solucionador.bI
Para un excelente artículo que discute esto, así como técnicas de análisis complejas más generales que se aplican a las matrices no simétricas, vea Computación , y funciones de matriz relacionadas por integrales de contornoAαlog(A) , por Hale, Higham y Trefethen (2008 )
"Cálculo" determinante
El determinante es más difícil de calcular. Por lo que yo sé, la mejor manera es calcular la descomposición de Schur utilizando el algoritmo QR, a continuación, leer fuera de los valores propios de la diagonal de la matriz triangular superior . Esto toma tiempo, donde es el número de nodos en el gráfico.A=QUQ∗UO(n3)n
Sin embargo, calcular los determinantes es un problema inherentemente mal condicionado, por lo que si alguna vez lee un documento que se basa en el cálculo de determinantes de una matriz grande, debe ser muy escéptico sobre el método.
Afortunadamente, probablemente no necesites el determinante. Por ejemplo,
Podemos ver como una actualización de bajo rango para la identidad,
donde el número efectivo rango, , de la actualización de rango bajo es una medida local de cuán no gaussiana es la distribución verdadera; típicamente esto es mucho más bajo que el rango completo de la matriz. De hecho, si es grande, entonces la distribución verdadera es localmente tan no gaussiana que uno debería cuestionar toda la estrategia de tratar de muestrear esta distribución usando aproximaciones gaussianas locales.A−1x0Axp
A−1x0Axp=I+QDQ∗,
rr
Los factores y rango bajo se pueden encontrar con SVD aleatorio o Lanczos aplicando la matriz
a diferentes vectores, cada aplicación de los cuales requiere un gráfico Solución laplaciana. Por lo tanto, el trabajo general para obtener estos factores de bajo rango es .QD
A−1x0Axp−I
O(r)O(rmax(n,E))
Conociendo , la razón determinante es entonces
D=diag(d1,d2,…,dr)
det(A−1x0Axp)=det(I+QDQ∗)=exp(∑i=1rlogdi).
Estas técnicas de cálculo de racionamiento determinante bajo rango pueden ser encontrados en A estocástico Newton MCMC Método a gran escala estadístico problemas inversos con aplicación a Inversión sísmica , por Martin, et al. (2012) En este documento se aplica a problemas continuos, por lo que el "gráfico" es una cuadrícula en el espacio 3D y el gráfico Laplaciano es la matriz Laplaciana real. Sin embargo, todas las técnicas se aplican a los gráficos laplacianos generales. Probablemente ya haya otros documentos que apliquen esta técnica a gráficos generales (la extensión es trivial y básicamente lo que acabo de escribir).