Tengo un PETSc Mat
y me gustaría estimar su número de condición.
fuente
Tengo un PETSc Mat
y me gustaría estimar su número de condición.
Para matrices pequeñas, el número de condición se puede calcular de manera confiable utilizando la descomposición de valores singulares. Haz un KSPSolve()
con la matriz y corre con -pc_type svd -pc_svd_monitor
.
Para matrices más grandes, puede estimar el número de condición utilizando un método de Krylov. Por ejemplo, la iteración de Arnoldi realizada por GMRES calcula incrementalmente una descomposición de Hessenberg. Los valores singulares extremos y los valores propios de la matriz de Hessenberg son buenas aproximaciones a los de la matriz original. Para que PETSc calcule valores propios de esta manera, ejecute con
-ksp_monitor_singular_value -ksp_type gmres -ksp_gmres_restart 1000 -pc_type none
-pc_type none
KSPSolve()
Utilice SLEPc si necesita estimaciones más precisas del valor singular más pequeño (y para todos los demás problemas de valor propio y valor singular).