Büyük yoğun lineer sistemi çözme?


11

Aşağıdaki doğrusal sistemi tekrarlı bir yöntemle verimli bir şekilde çözme umudu var mı?

ARn×n,xRn,bRn, with n>106

Ax=b

ile

A=(ΔK) , burada , Laplace Operatörünün takdirine bağlı olarak ortaya çıkan, birkaç köşegenli çok seyrek bir matristir. Ana diyagonalinde ve üzerinde olan diyagonal vardır .- 6 6 1Δ661

K , tamamen bunlardan oluşan tam bir matrisidir.Rn×n

Çözme o seyrek çapraz baskın matris çünkü, Gauss-Seidel gibi iteratif yöntemlerle para cezası çalışır. probleminin çok sayıda için verimli bir şekilde çözülmesinin neredeyse imkansız olduğundan şüpheleniyorum , ancak yapısından yararlanarak çözmek için herhangi bir hile var mı?A = ( Δ - K ) n KA=ΔA=(ΔK)nK

EDIT: gibi bir şey yapmak

x k + 1Δxk+1=b+Kxk // Gauss-Seidel ile için çözxk+1

doğru çözüm ile yakınsama? Böyle bir Bölme Yöntemi , eğer spektral norm ise yakınsama okudum . N'nin bazı farklı küçük değerleri için Δ - 1 K özdeğerlerini manuel olarak hesapladım ve oldukça yüksek negatif değere sahip olanlar hariç hepsi sıfır. ( n = 256 için yaklaşık ~ 500 ) Yani sanırım bu işe yaramaz.ρρ(Δ1K)<1ρΔ1Knn=256

EDIT: hakkında daha fazla bilgiΔ :

simetriktir ve negatif kesin ve çapraz baskındır.ΔRn×n

Matlab'da şu şekilde oluşturulur

n=W*H*D;

e=ones(W*H*D,1);

d=[e,e,e,-6*e,e,e,e];

delta=spdiags(d, [-W*H, -W, -1, 0, 1, W, W*H], n, n);


hakkında daha fazla bilgi verebilir misiniz? Simetrik? Kesin, yarı kesin, kesin değil mi? Δ
Stefano M

simetrik ve negatif tanımlıdır. Δ
yon

K düşük sıralı olduğu için Woodbury Matrix Identity size yardımcı oluyor mu?
Aron Ahmadia

Yanıtlar:


14

Makul veri yapıları kullanırsanız , bir dizüstü bilgisayarda ve bir süper bilgisayarda n 10 12 ile sorunu çözebilecek iki seçenek vardır . Verimlilik için, sizinle çözmek için multigrid kullanması gerektiğini Not Ô . Her iki durumda da maliyet Δ ile çözmekten daha pahalı küçük bir faktör olacaktır . İki yaklaşım bir Schur tamamlayıcı argümanı ile eşdeğerdir, ancak uygulamaları farklı olduğu için ayrı ayrı açıklarım.n>106n1012ΔΔ

  • Kenarlıklı sistemi kullanın

M=(ΔeeT1)

burada olan bir sütun vektördür tüm olanlardan oluşan ve sistem çözmeke

M(xy)=(b0)

yinelemeli veya doğrudan çözücü kullanarak.

  • Bir Krylov yöntemi kullanın ve matris uygulamak olarak . (Yani seyrek matris artı rütbe-1 düzeltme mevcut Şartlandırıcı kullanın veya özellikle ile doğrudan bir çözüm kullanmak istiyorsanız , bunu Sherman-Morrison formülüyle güncelleyin .Δ - e e T P - 1Δ - 1 ΔAΔeeTP1Δ1Δ

İkinci yaklaşımda çok daha iyi olduğunuzu düşünmeye meyilliyim. Mesele şu ki, matrisini hafızada saklamaya veya onunla birlikte bir matris vektör ürünü yapmaya çalışmamanız gerekir. Aksine, yinelemeli şemanızda ile bir vektör ile çarpmanız gerektiğinde, z'yi çarpar ve ardından hesaplarsınız . Parantez içindeki terim, girişlerinin toplamıdır ve yalnızca bir kez hesaplarsınız. Jed bunu zaten iyi açıkladı ama operasyonların sırasını vurgulamak istedim. A z h = Δ z y = h - e ( e T z ) zKAzh=Δzy=he(eTz)z
Wolfgang Bangerth
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.