Schur tamamlayıcısının oluşturulması
Varsayalım ki matrisinizi forma böltünüz.
A=(A11A21A12A22),
öyle ki ilgi derecelerinizi içerecek ve A 11'den çok daha küçük olacaksa, o zaman Schur tamamlayıcısını oluşturabilirsinizA22A11
S22:=A22−A21A−111A12,
ya kısmi sağa bakan bir LU çarpanlarına ayırma ya da açık formül aracılığıyla, ve sonra aşağıdaki anlamda anlaşılabilir:S22
S22x=y→(A11A21A12A22)(⋆x)=(0y),
burada , çözümün 'ilgisiz' kısmını temsil eder. Bu nedenle, Schur tamamlayıcısı S 22'nin serbestlik derecelerinde sadece sıfır olmayan bir sağ taraf sağlandığında , çözeltinin bu serbestlik derecelerine karşılık gelen kısmını elde etmek için sadece S 22'ye karşı çözmemiz gerekir .⋆S22S22
Yapılandırılmamış yoğun vakada hesaplama karmaşıklığı
Ayarlama yüksekliğine A ve n, yüksekliğine A 22 , daha sonra işlem için standart bir yöntem S 22 birinci faktör olan L 11 U 11 : = bir 11 kabaca (şimdilik döner kabul edelim;) 2 / 3 ( N - n ) 3 iş, sonra oluşturmakNAnA22S22L11U11:=A112/3(N−n)3
S22:=A22−(A21U−111)(L−111A12)=A22−A21A−111A12
gerektiren iki üçgen kullanarak çözer iş her biri ve daha sonra, güncelleştirme işlemini A 22 içinde 2 N 2 ( N - n ) çalışması.n(N−n)2A222n2(N−n)
Bu durumda, toplam çalışma kabaca . Zaman n, çok küçük, N - n ≈ N maliyeti kabaca olduğu görülebilir, böylece 2 / 3 , N 3 tam çarpanlara maliyetidir.2/3(N−n)3+2n(N−n)2+2n2(N−n)nN−n≈N2/3N3
Faydası, aynı denklem sistemi ile çözülecek çok sayıda sağ taraf varsa, potansiyel olarak çok sayıda tekrar kullanılabileceği ve her bir çözümün sadece 2 n 2 çalışma gerektireceği S 22 çarpanlarına ayrılırsa ( 2 N 2 çalışması yerine ) .S222n22N2S22
(Tipik) seyrek vakada hesaplama karmaşıklığı
Seyrek sisteminiz bir tür sonlu farktan veya sonlu eleman yaklaşımından kaynaklanıyorsa, seyrek doğrudan çözücüler neredeyse kesinlikle yapının bir kısmını kullanabileceklerdir; 2d sistemleriyle çözülebilir çalışma ve O ( N günlük K ) 3d sistemleriyle çözülebilir ise, depolama O ( N 2 ) çalışması ve O ( N 4 / 3 ) depolama. Faktörlü sistemler daha sonra depolama gereklilikleriyle aynı miktarda işle çözülebilir.O(N3/2)O(NlogN)O(N2)O(N4/3)
Hesaplama karmaşıklıklarını ortaya çıkarmanın amacı, eğer ve bir 2d sisteminiz var, o zaman Schur tamamlayıcısı muhtemelen yoğun olacağından, faktörlü Schur tamamlayıcısı verilen çözme karmaşıklığıO(n2)=O(N) olacaktır; sistemi! 3d, bu gerektirirO(K)yerine çalışmaO(N 4 / 3 ).n≈N−−√O(n2)=O(N)O(N)O(N4/3)
Bu nedenle, n=N−−√, there will only be significant savings if you're working in several dimensions and have many right-hand sides to solve.