Çözme


22

ve matrislerine sahibim . seyrek ve bir ile çok (birkaç milyon mertebesinde olabilir.), Büyük bir bir ile uzun matris oldukça küçük ( ) ve her sütunun kutunun sadece tek bir sahiptir geri kalan kısım ile girişi öyle ki 's, . çok büyük, bu yüzden tersine çevirmek gerçekten zor ve gibi doğrusal bir sistemi , gibi bir Krylov alt uzay yöntemi kullanarak yinelemeli bir şekilde , ancak yok.G bir n x n n G , n x m m 1 < m < 1000 1 0 G , T G = I bir A x = b B i Cı- G, S , T , bir B ( l ) , A - 1AGAn×nnGn×mm1<m<100010GTG=IAAx=bBiCGStab(l)A1 açıkça.

Formun bir sistem çözmek isteyen: , burada ve olan uzunlukta vektörleri. Bunu yapmanın bir yolu , dış yinelemeli algoritmanın her yinelemesi için için çözmek üzere bir yinelemeli algoritma içinde bir yinelemeli algoritma kullanmaktır . Bununla birlikte, bu işlem oldukça pahalı bir işlemdir. Bu sorunu çözmenin hesaplamanın daha kolay bir yolu olup olmadığını merak ediyordum.x b m A - 1(GTA1G)x=bxbmA1


Cevabımı az önce 0-1 yapısını kullanmaya yönelik bir yorum ekledim.
Arnold Neumaier,

Yanıtlar:


19

vektörünü tanıtın : = - A - 1 G x ve büyük eşlemeli sistemi A y + G x = 0 , G T y = - b için ( y , x ) eşzamanlı olarak, bir yinelemeli yöntem kullanarak çözün. Eğer A simetrik ise (açıkça belirtmemeniz muhtemel gibi görünüyorsa) sistem simetriktir (ancak belirsiz, ancak Ay:=A1GxAy+Gx=0GTy=b(y,x)AApozitif olan kesin), bu da uygun bir yöntem seçmenize yardımcı olabilir. (alakalı anahtar kelimeler: KKT matrisi, quasidefinite matrisi).

Düzenleme: karmaşık bir simetrik olduğundan, artırılmış matris de vardır, ancak yarı kesinliği yoktur. Bununla birlikte kullanabilirsiniz bir x hesaplamak için rutin A * x = ¯ A ¯ x ; bu nedenle, QMR ftp://ftp.math.ucla.edu/pub/camreport/cam92-19.pdf (gerçek sistemler için tasarlanmıştır) gibi bir yöntemi uyarlayabilirsiniz ; sorununuzu çözmek için devrik yeri).AAxAx=Ax¯¯

Edit2: Aslında, bir (0,1) -Elektroseramiklerde yapı vasıtasıyla ortadan kaldırmak ki X AMD bileşenleri G , T , y ve böylece çözme için daha küçük bir sistem ile biten, sembolik. Bu, A'nın yapısıyla uğraşmak anlamına gelir ve yalnızca A , doğrusal bir operatör olarak değil, seyrek biçimde açıkça verildiğinde öder .GxGTyAA


Teşekkür ederim! A, karmaşık simetriktir. Arttırılmış matrisin koşulunun orijinal matrisininkinden daha kötü olmasını beklemenin bir nedeni var mı ? M küçükse, artırılmış matris A boyutundan yalnızca marjinal olarak daha büyüktür, bu yüzden bu artırılmış sistemin tekrar tekrar çözülmesinin A ile bir sistemi çözmekten çok daha zor olmamasından şüpheliyim. A
Costis

İki sistemin durum sayısı genellikle oldukça ilişkili değildir; ne olduğuna çok bağlı . - Karmaşık simetriden nasıl yararlanılacağı konusundaki cevap bilgilerime ekledim. G
Arnold Neumaier,

Merhaba millet! Tüm cevaplar için teşekkürler; Burası harika! Asıl soruya bir uzantı: Şimdi, olduğumu varsayalım ; burada G ve A, orijinal sorudakiyle aynı anlama sahiptir, ancak B, nksn matrisinde bir derece değildir (B). A) ile aynı ebatta ve bütün G T A - H B A - 1 G tam derecelidir. Yeni sistemin çözümüne nasıl devam edersiniz, çünkü şimdi B'nin tersi yoktur, bu yüzden A B - 1 A H'ye sahip olamazsınız(GTAHBA1G)x=bGTAHBA1GAB1AH. Bunun sadece B'nin sözde tersi ile de çalışacağını sanmıyorum.
Costis

1
ve z : = A - H B y tanıtın ve çalışılan duruma benzer bir şekilde devam edin. (Şüphesiz, ayrıca B'yi tam dereceli matrislere ayırmanız ve ek bir ara vektör vermeniz gerekir .)y:=A1Gxz:=AHByB
Arnold Neumaier

Merhaba Arnold. Teşekkürler, bu gerçekten işe yarıyor! Bazı çok küçük test örnekleri ile test ettim ve harika çalışıyor. Ancak yinelemeli çözücüm, artırılmış matrisi tersine çeviren büyük sorunlar yaşıyor. formundaki bir sistemi orijinal A matrisiyle çözmek sadece 80 iterasyon (birkaç saniye) alırken , artırılmış matrisli sistem (2n + mx 2n + m veya 2n-mx 2n- @ wolfgang-bangerth'in yaklaşımını kullanmak, bir RHS'yi çözmek için on binlerce iterasyon (birkaç saat) alır. Yakınsama hızlandırmak için herhangi bir strateji var mı? belki bir ön şartlandırıcı? Ax=b
Costis

7

Arnold'un cevabını takiben, sorunu basitleştirmek için yapabileceğiniz bir şey var. Spesifik olarak, sistemi . Daha sonra deyimi bu dikkat G boyunda ve dar ve her sıra, aksi takdirde daha sonra açıklamada sadece bir 1 ve sıfır olan G , T , Y = - b yollarının elemanlarının bir alt kümesini y sabit bir değer, yani elemanlara sahip - b .Ay+Gx=0,GTy=bGGTy=byb

Bizim basit olması için diyelim vardır m sütun ve n, satır tam olarak ilk olarak bu m satırları tanesi olanlar ve bu elemanlarını yeniden düzenlenmesi olabilir x O kadar o kadar yapabilir G bulunur m x m üstünde kimlik matrisi ve n, - m x m altındaki sıfır matrisi. Sonra y = ( y c , y f ) m'yi "sınırlı" ve n - m "boş" elemanlara bölebilirim .GmnmxGm×mnm×my=(yc,yf)mnm . Ben bölümü de olabilir bir böylece bir = ( A C c bir C f bir ön c A f f ) . A y + G x = 0 denklemindensonra şunu alıyorum: A c c y c + A c f y f + x = 0 ,yc=bAA=(AccAcfAfcAff)Ay+Gx=0 ve yaklaşık bildiklerini kullanılarak y c bu denklemlerin ikinciden sahip bir ön f y f = A f c b ve dolayısıyla X = bir Cı- C b - bir f A - 1 f f A f c b . Başka bir deyişle, ters çevirmeniz gereken tek matris A'nın alt kümesidir.

Accyc+Acfyf+x=0,Afcyc+Affyf=0
yc
Affyf=Afcb
x=AccbAcfAff1Afcb.
Aolan sıralar ve sütunlar halinde belirtilmeyen (sıfır alan G ). Bunu kolayca yapabilirsiniz: (i) hesaplama z = A f c b ; (ii) çözmek için gereken çözücüyü kullanın A f f h = z ; (iii) hesaplama x = A c c b - A c f sa .GGz=AfcbAffh=zx=AccbAcfh

Başka bir deyişle, yapısı göz önüne alındığında, sahip olduğunuz lineer sistemi çözmek, A ile tek bir lineer sistemi çözmekten daha zor değildir .GA


0

GGTA

GTA1Gx=b

GGTA1Gx=Gb

GTG=IGT=G1GGT=I

A1Gx=Gb

AA1Gx=AGb

Gx=AGb

GTGx=GTAGb

x=GTAGb

GAb


3
GTGG=e1GT=e1TGGT=e1e1TI

1
GCnCmGTG=Im×mGGTIn×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.