Após a resposta de Arnold, há algo que você pode fazer para simplificar o problema. Reescreva especificamente o sistema como . Observe que, a partir da afirmação de que G é alto e estreito e cada linha tem apenas 1 e zeros, a instrução G T y = - b significa que um subconjunto dos elementos de y tem um valor fixo, a saber, os elementos de - b .Ay+Gx=0,GTy=−bGGTy=−by−b
Digamos que, por simplicidade que tem m colunas e n linhas e que exatamente as primeiras m linhas têm mais neles e que seja reordenar os elementos de x que posso fazer com que G tem o m × m matriz identidade no topo e uma matriz n - m × m zero na parte inferior. Então eu posso particionar y = ( y c , y f ) em m "restrito" e n - m "livre" elementos para queGmnmxGm×mn−m×my=(yc,yf)mn−m . Também posso particionar A para que A = ( A c c A c f A f c A f f ) . A partir da equação A y + G x = 0 , obtive o seguinte:
A c c y c + A c f y f + x = 0 ,yc=−bAA=(AccAfcAcfAff)Ay+Gx=0
e usando o que sabemos sobre y c , temos a partir da segunda dessas equações
A f f y f = A f c b
e consequentemente
x = A c c b - A c f A - 1 f f A f c b .
Em outras palavras, a única matriz que você deve inverter é o subconjunto de A
Accyc+Acfyf+x=0,Afcyc+Affyf=0
ycAffyf=Afcb
x=Accb−AcfA−1ffAfcb.
Acujas linhas e colunas não são mencionadas em
(o espaço nulo de
G ). Isso você pode facilmente fazer: (i) calcular
z = A f c b ; (ii) use qualquer solucionador que você precise resolver
A f f h = z ; (iii) calcular
x = A c c b - A c f h .
GGz=AfcbAffh=zx=Accb−Acfh
Em outras palavras, dada a estrutura de , resolvendo o sistema linear você tem não é realmente mais difícil do que a solução de um único sistema linear com A .GA