Neredeyse tekil sistemlere uygulanan iteratif doğrusal çözücüler için durma kriterleri


16

Ax=bAλ0Arn:=bAxnn v λ 0 A v = λ 0 v r 0r n/r 0< t o l x n - x x n - x n - 1rn/r0<tolnvλ0Av=λ0v. İlk kalıntı büyük olduğunu varsayalım , o zaman ancak hatası hala büyüktür. Bu durumda daha iyi bir hata göstergesi nedir? Mıiyi bir aday mı?r0rn/r0<tÖlxn-xxn-xn-1


3
"Neredeyse tekil" tanımınızı düşünmek isteyebilirsiniz. matrisinin Iϵ( ϵ1 ve I kimlik matrisi ile) çok küçük bir özdeğer vardır, ancak herhangi bir matrisin olabildiği kadar tekildir.
David Ketcheson

1
Ayrıca, yanlış gösterime benziyor. | | r n | | / | | r 0 | | daha tipik, değil mi? ||rn/r0||||rn||/||r0||
Bill Barth

Evet, haklısın Bill! Bu hatayı düzeltirim.
Hui Zhang

1
Ne hakkında ? ve algoritmanız tam olarak nedir? bAx/b
shuhalo

2
Zeyilname: Bence aşağıdaki yazı en azından CG kullanıyorsanız endişe ettiğiniz koşulsuz sistemlere oldukça fazla değer vermektedir: Axelson, Kaporin: Ön koşullu eşlenik gradyan yinelemelerinde hata normu tahmini ve durdurma kriterleri. DOI: 10.1002 / nla.244
shuhalo

Yanıtlar:


13

Lütfen bir durdurma ölçütü tanımlamak için birbirini takip eden yinelemeler arasındaki farkı asla kullanmayın. Bu yakınsama için durgunluğu yanlış teşhis eder. Çoğu simetrik olmayan matris yinelemesi monoton değildir ve yeniden başlatma olmadan kesin aritmetik olarak GMRES bile aniden yakınsamadan önce rastgele sayıda yineleme (matrisin boyutuna kadar) için durağanlaşabilir. Bkz. Nachtigal, Reddy ve Trefethen (1993) .

Yakınsama tanımlamanın daha iyi bir yolu

Genellikle çözümümüzün doğruluğuyla, kalanın boyutundan daha fazla ilgileniriz. Spesifik olarak, yaklaşık bir çözüm ile kesin çözüm x arasındaki farkın karşılandığını garanti etmek isteriz | x n - x | < C bir kullanıcı tarafından belirtilen için c . Bir x n bularak bu elde edebilirsiniz ortaya çıkıyor ki | A x n - b | < C ε burada ε küçük tekil değer A nedeniyle,xnx

|xn-x|<c
cxn
|birxn-b|<cε
εbir

|xnx|=|A1A(xnx)|1ϵ|AxnAx|=1ϵ|Axnb|<1ϵcϵ=c

burada değerinin A - 1'in en büyük tekil değeri (ikinci satır) olduğunu ve x'in A x = b'yi (üçüncü satır) tam olarak çözdüğünü kullandık .1/ϵA1xAx=b

En küçük tekil değeri tahmin etme ϵ

En küçük tekil değerin doğru bir tahmini genellikle problemden doğrudan elde edilemez, ancak konjugat gradyan veya GMRES yinelemesinin bir yan ürünü olarak tahmin edilebilir. Büyük özdeğerler ve tekil değerlerin tahminler genellikle sadece birkaç tekrardan sonra oldukça iyi olmasına rağmen, en küçük özdeğer / tekil değer doğru bir tahmin, söz konusu Not yakınsama ulaşıldığında genellikle sadece elde edilir. Yakınsama öncesinde, tahmin genellikle gerçek değerden önemli ölçüde daha büyük olacaktır. Bu, doğru toleransı c ϵ tanımlayabilmeniz için denklemleri gerçekten çözmeniz gerektiğini gösterir . Kullanıcı tarafından sağlanan doğruluğu alan otomatik yakınsama toleransı cϵcϵcçözüm için ve en küçük tekil değeri Krylov yönteminin mevcut durumu ile tahmin eder, çünkü ϵ tahmini gerçek değerden çok daha büyüktür.ϵϵ

notlar

  1. Ayrıca ile çalışır Yukarıdaki tartışma sol-ön şartlandırılmış operatör ile ikame P - 1 A ve ön şartlandırılmış kalıntı P - 1 ( A x N - b ) ya da sağ-ön şartlandırılmış operatörü ile bir P - 1 ve hata P ( x , n - x ) . Eğer P - 1AP1AP1(Axnb)AP1P(xnx)P1iyi bir önkoşulsa, önkoşullu operatör iyi koşullandırılacaktır. Sol ön koşullandırma için bu, ön koşullandırılmış artık miktarın küçük hale getirilebileceği, ancak gerçek artık yapılamayacağı anlamına gelir. Doğru ön koşullandırma için kolayca küçük yapılır, ancak gerçek hata | x n - x | olmayabilir. Bu, sol ön koşullandırmanın hatayı küçük yapmak için neden daha iyi olduğunu gösterirken, sağ ön koşullandırma, artık küçük yapmak (ve kararsız önkoşullarda hata ayıklamak için) daha iyidir.|P(xnx)||xnx|
  2. GMRES ve CG tarafından en aza indirilmiş normlar hakkında daha fazla tartışma için bu cevaba bakınız .
  3. Ekstremal tekil değerlerin tahminleri -ksp_monitor_singular_valueherhangi bir PETSc programı kullanılarak izlenebilir . Koddan tekil değerleri hesaplamak için KSPComputeExtremeSingularValues ​​() öğesine bakın .
  4. Tekil değerleri tahmin etmek için GMRES kullanırken, yeniden başlatmaların kullanılmaması çok önemlidir (örn -ksp_gmres_restart 1000. PETSc'de).

1
' 'de A ile çalışan bir önceden ayarlanmış operatör ile ikame' - Bununla birlikte, daha sonra, sadece önceden uygun kalıntı için geçerlidir eğer P - 1 bir kullanıldığında, solunum. Önceden kıvama getirilen hata için P - 1 δ X ise bir P - 1 kullanılır. P1rP1AP1δxAP1
Arnold Neumaier

1
İyi bir nokta, cevabımı düzenledim. Sağ koşullu kasanın size kontrolünü verdiğini , ön koşullayıcının ( P - 1 uygulayarak) çözülmesinin hatadaki düşük enerji modlarını yükselttiğini unutmayın. PδxP1
Jed Brown

6

Bu soruna bakmanın bir başka yolu, araçları ayrık ters problemlerden, yani veya min | | A x - b | | 2 burada bir çok kötü durumdaki (yani, ilk ve son tekil değeri arasındaki oran σ 1 / σ n büyüktür).Ax=bmin||Axb||2Aσ1/σn

Burada, durdurma ölçütünü seçmek için birkaç yöntemimiz var ve yinelemeli bir yöntem için, L-eğrisi ölçütünü öneriyorum çünkü sadece zaten mevcut olan miktarları içeriyor (YASAL UYARI: Danışmanım bu yönteme öncülük etti, bu yüzden kesinlikle o). Bunu yinelemeli bir yöntemle başarıyla kullandım.

Fikir, artık normu izlemek ve çözelti normu η k = | | x k | | 2 , burada x k , k 'yinelemesidir. Yinelediğinizde, bu, bir log (rho, eta) grafiğinde bir L şeklini çizmeye başlar ve bu L'nin köşesindeki nokta en uygun seçimdir.ρk=||Axkb||2ηk=||xk||2xkk

Bu, köşeyi geçtiğinizde (örn. gradyanına bakarak) göz kulak olduğunuz bir ölçüt uygulamanıza ve ardından köşede bulunan yinelemeyi seçmenize olanak tanır .(ρk,ηk)

Bunu yaptığım şekilde son 20 yinelemeyi saklamak gerekiyordu ve eğer gradyan abs(log(ηk)log(ηk1)log(ρk)log(ρk1))

Köşeyi bulmak için daha ayrıntılı yöntemler de vardır ve bunlar daha iyi çalışır, ancak önemli sayıda yinelemenin depolanmasını gerektirir. Onunla biraz oynayın. Matlabdaysanız, bazılarını uygulayan Regularization Tools (Düzenleme Araçları) araç kutusunu kullanabilirsiniz (özellikle "köşe" işlevi geçerlidir).

Bu yaklaşımın özellikle büyük ölçekli problemler için uygun olduğunu unutmayın, çünkü fazladan hesaplama zamanı çok küçüktür.


1
Çok teşekkürler! Loglog (rho, eta) grafiğinde L eğrisinin sağından başlayıp L'nin üstünde bitiyoruz, değil mi? Bu kriterin arkasındaki prensibi bilmiyorum. Neden her zaman L eğrisi gibi davrandığını ve neden köşeyi seçtiğimizi açıklayabilir misiniz?
Hui Zhang

||birx-b||2=||e||2ebexbirct=b+e. Daha fazla analiz için bakınız Hansen, PC ve O'Leary, DP (1993). Kesikli yanlış pozlanmış problemlerin düzenli hale getirilmesinde L eğrisinin kullanılması. SIAM Bilimsel Hesaplama Dergisi, 14. Gönderiye hafif bir güncelleme yaptığımı unutmayın.
OscarB

4
@HuiZhang: her zaman bir L değil . Düzenleme belirsiz ise, çözüm için iki aday olabilir, biri brüt özellikli daha iyi çözüldü, diğeri belirli detaylar daha iyi çözüldü. (Ve elbette, mor ecomplex şekiller görünebilir.)
Arnold Neumaier

L-eğrisi benzersiz bir çözüm olması gereken koşulsuz problemler için geçerli mi? Yani, b = "tam olarak" bilinen ve A neredeyse tekil ama yine de teknik olarak tersine çevrilebilir olan Ax = b problemleriyle ilgileniyorum. Bana öyle geliyor ki, GMRES gibi bir şey kullanırsanız, mevcut x tahmininizin normu zaman içinde çok fazla değişmez, özellikle ilk yinelemeden sonra. Bana öyle geliyor ki L eğrisinin dikey kısmı, kötü bir problemde benzersiz / geçerli bir çözüm olmadığı için meydana geliyor; bu dikey özellik tüm koşulsuz problemlerde mevcut mu?
nukeguy

Bir noktada, tipik olarak çözüm yönteminizdeki sayısal hataların || Ax-b || azalmıyor. Bununla birlikte, bu tür gürültüsüz problemlerde eğrinin her zaman L gibi görünmemesi haklısınız, yani genellikle seçim yapabileceğiniz birkaç köşeniz var ve diğerinden birini seçmek zor olabilir. Yukarıdaki yorumumda bahsettiğim makalenin gürültüsüz senaryoları kısaca tartıştığına inanıyorum.
OscarB
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.