답변:
작은 행렬의 경우 특이 값 분해를 사용하여 조건 번호를 안정적으로 계산할 수 있습니다. 를 수행 KSPSolve()
와 매트릭스와 실행으로 -pc_type svd -pc_svd_monitor
.
더 큰 행렬의 경우 Krylov 방법을 사용하여 조건 수를 추정 할 수 있습니다. 예를 들어, GMRES에 의해 수행 된 Arnoldi 반복은 Hessenberg 분해를 증분 계산합니다. Hessenberg 행렬의 극한 특이 값과 고유 값은 원래 행렬의 근사값과 근사값입니다. PETSc가 이런 식으로 고유 값을 추정하도록하려면
-ksp_monitor_singular_value -ksp_type gmres -ksp_gmres_restart 1000 -pc_type none
-pc_type none
KSPSolve()
가장 작은 특이 값에 대한보다 정확한 추정치가 필요한 경우 (및 다른 모든 고유 값 및 특이 값 문제에 대해) SLEPc를 사용하십시오 .