PETSc kullanarak büyük seyrek bir matrisin durum sayısını nasıl tahmin edebilirim?


Yanıtlar:


11

Küçük matrisler için, koşul numarası tekil değer ayrışımı kullanılarak güvenilir bir şekilde hesaplanabilir. Bir Do KSPSolve()ile matris ve çalışma ile -pc_type svd -pc_svd_monitor.

Daha büyük matrisler için, bir Krylov yöntemi kullanarak durum numarasını tahmin edebilirsiniz. Örneğin, GMRES tarafından yapılan Arnoldi yinelemesi, bir Hessenberg ayrışmasını hesaplar. Hessenberg matrisinin aşırı tekil değerleri ve özdeğerleri, orijinal matrisinkilere iyi yaklaşımlardır. PETSc'nin özdeğerlerini bu şekilde tahmin etmesini sağlamak için

-ksp_monitor_singular_value -ksp_type gmres -ksp_gmres_restart 1000 -pc_type none

-pc_type noneP-1birbirP-1

KSPSolve()birbir-1

En küçük tekil değerin (ve diğer tüm özdeğer ve tekil değer problemleri için) daha doğru tahminlere ihtiyacınız varsa SLEPc kullanın .

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.