Formando o complemento Schur
Suponha que você tenha permutado e particionado sua matriz no formato
A=(A11A21A12A22),
tal que A22 contenha seus graus de liberdade de interesse e seja muito menor que , é possível formar o complemento de SchurA11
S22:=A22−A21A−111A12,
através de uma fatoração LU de aparência parcial ou da fórmula explícita e, em seguida, pode ser entendido no seguinte sentido:S22
S22x=y→(A11A21A12A22)(⋆x)=(0y),
onde representa a parte 'desinteressante' da solução. Assim, desde que o lado direito seja diferente de zero nos graus de liberdade do complemento Schur S 22 , precisamos apenas resolver contra S 22 para obter a parte da solução correspondente a esses graus de liberdade.⋆S22S22
Complexidade computacional em caso denso não estruturado
Configuração para a altura de um e n para a altura de Um 22 , então o método padrão para calcular S 22 é primeiro factor G 11 L 11 : = A 11 (Vamos ignorar pivotante por agora) em aproximadamente 2 / 3 ( N - nNAnA22S22L11U11:=A11 trabalhos, depois formar2/3(N−n)3
S22:=A22−(A21U−111)(L−111A12)=A22−A21A−111A12
usando duas soluções triangulares exigindo que trabalhem cada uma e, em seguida, executando a atualização para A 22 em 2 n 2 ( Nn(N−n)2A22 .2n2(N−n)
Assim, o trabalho total é de cerca de . Quando n é muito pequena, N - N ≈ N , de modo que o custo pode ser visto como cerca de 2 / 3 N 3 , que é o custo de um completo fatoração.2/3(N−n)3+2n(N−n)2+2n2(N−n)nN−n≈N2/3N3
O benefício é que, se houver um número muito grande de lados do lado direito a ser resolvido com o mesmo sistema de equações, o poderá ser reutilizado potencialmente várias vezes, onde cada solução exigiria apenas 2 n 2 de trabalho (em vez de 2 N 2 funcionar) se S 22 for fatorado.S222n22N2S22
Complexidade computacional no caso escasso (típico)
Se seu sistema esparso surgir de algum tipo de aproximação de diferença finita ou elemento finito, os solucionadores diretos esparsos quase certamente serão capazes de explorar parte da estrutura; Sistemas 2d pode ser resolvido com de trabalho e O ( N log N ) de armazenamento, enquanto que os sistemas 3D pode ser resolvido com S ( N 2 ) trabalho e S ( N 4 /O(N3/2)O(NlogN)O(N2)de armazenamento. Os sistemas fatorados podem ser resolvidos com a mesma quantidade de trabalho que os requisitos de armazenamento.O(N4/3)
O objetivo de trazer à tona as complexidades computacionais é que, se e você tem um sistema 2d, então, como o complemento Schur provavelmente será denso, a complexidade da solução dada ao complemento fatorado Schur seráO(n2)=O(N), que está faltando apenas um fator logarítmico em vez de resolver o problema completo sistema! Em 3d, que exigeO(N)de trabalho em vez deS(N 4 / 3n≈N−−√O(n2)=O(N)O(N) .O(N4/3)
Portanto, é importante ter em mente que, no seu caso, onde , haverá apenas economias significativas se você estiver trabalhando em várias dimensões e tiver muitos lados do lado direito para resolver.n=N−−√