Formowanie uzupełnienia Schur
Załóżmy, że permutowałeś i podzieliłeś swoją macierz na formę
A=(A11A21A12A22),
tak, że zawiera stopnie swobody zainteresowania i jest znacznie mniejszy niż A 11 , wówczas można utworzyć dopełnienie SchurA22A11
S22:=A22−A21A−111A12,
albo poprzez częściową prawostronną LU faktoryzację, albo wyraźną formułę, a następnie można zrozumieć w następującym znaczeniu:S22
S22x=y→(A11A21A12A22)(⋆x)=(0y),
gdzie oznacza „nieciekawą” część rozwiązania. Tak więc, pod warunkiem, że prawa strona, która jest tylko niezerowa w stopniach swobody uzupełnienia Schur S 22 , musimy rozwiązać tylko S 22 , aby uzyskać część rozwiązania odpowiadającą tym stopniom swobody.⋆S22S22
Złożoność obliczeniowa w nieustrukturyzowanym gęstym przypadku
Ustawienie do wysokości A i n do wysokości A 22 , standardowe metody obliczeniowej S 22 jest Czynnikiem l 11 U 11 : = 11 (zignorujmy odchylany do tej pory) w przybliżeniu 2 / 3 ( N - n ) 3 prace, a następnie do formyNAnA22S22L11U11:=A112/3(N−n)3
S22:=A22−(A21U−111)(L−111A12)=A22−A21A−111A12
używając dwóch trójkątów wymagających pracy , a następnie wykonując aktualizację do A 22 w pracy 2 n 2 ( N - n ) .n(N−n)2A222n2(N−n)
Zatem całkowity pracy jest w przybliżeniu . Gdy n jest bardzo mała, N - n ≈ N , więc koszty te mogą być widoczne w przybliżeniu 2 / 3 N 3 , który jest koszt pełnego faktoryzacji.2/3(N−n)3+2n(N−n)2+2n2(N−n)nN−n≈N2/3N3
Korzyścią jest to, że jeśli istnieje bardzo duża liczba prawostronnych stron do rozwiązania za pomocą tego samego układu równań, wówczas może potencjalnie zostać ponownie użyty wiele razy, przy czym każde rozwiązanie wymagałoby tylko 2 n 2 pracy (zamiast pracy 2 N 2 ), jeśli S 22 jest uwzględniony.S222n22N2S22
Złożoność obliczeniowa w (typowym) rzadkim przypadku
Jeśli twój rzadki system powstał z jakiegoś rodzaju przybliżenia skończonej różnicy lub przybliżenia elementu skończonego, wówczas solwery rzadkie bezpośrednie prawie na pewno będą w stanie wykorzystać część struktury; Systemy 2d można rozwiązać pracy i O ( N log N ) podczas przechowywania, natomiast systemy 3D może być rozwiązany O ( N 2 ) pracy i O ( N 4 / 3 ) pamięci. Systemy oparte na faktorach można następnie rozwiązać przy takim samym nakładzie pracy, jak wymagania dotyczące pamięci.O(N3/2)O(NlogN)O(N2)O(N4/3)
Przywołanie złożoności obliczeniowej polega na tym, że jeśli i masz układ 2d, a ponieważ uzupełnienie Schur będzie prawdopodobnie gęste, złożoność rozwiązania przy uwzględnieniu faktoryzowanego uzupełnienia Schur będzie wynosićO(n2)=O(N), w którym brakuje tylko współczynnika logarytmicznego w porównaniu do rozwiązania pełnego system! 3D, wymagaO(N)pracy zamiastO(N 4 / 3 ).n≈N−−√O(n2)=O(N)O(N)O(N4/3)
Dlatego ważne jest, aby pamiętać, że w twoim przypadku, gdzie , znaczne oszczędności przyniesie tylko praca w kilku wymiarach i rozwiązanie wielu problemów po prawej stronie.n=N−−√