Après la réponse d'Arnold, vous pouvez faire quelque chose pour simplifier le problème. Plus précisément, réécrivez le système sous la forme . Notez ensuite que d'après l'énoncé que G est grand et étroit et que chaque ligne n'a qu'un 1 et des zéros sinon, l'énoncé G T y = - b signifie qu'un sous-ensemble des éléments de y a une valeur fixe, à savoir les éléments de - b .Ay+Gx=0,GTy=−bGGTy=−by−b
Disons que pour simplifier que a m colonnes et n lignes et qu'exactement les m premières lignes en contiennent et que réorganiser les éléments de x je puisse faire en sorte que G ait la matrice d'identité m × m en haut et une matrice n - m × m zéro en bas. Ensuite, je peux partitionner y = ( y c , y f ) en m éléments "contraints" et n - m "libres" afin queGmnmxGm×mn−m×my=(yc,yf)mn−m . Je peux également partitionner A pour que A = ( A c c A c f A f c A f f ) . De l'équation A y + G x = 0, j'obtiens alors:
A c c y c + A c f y f + x = 0 ,yc=−bAA=(AccAfcAcfAff)Ay+Gx=0
et en utilisant ce que nous savons sur y c, nous avons de la seconde de ces équations
A f f y f = A f c b
et par conséquent
x = A c c b - A c f A - 1 f f A f c b .
En d'autres termes, la seule matrice que vous devez inverser est le sous-ensemble de A
Accyc+Acfyf+x=0,Afcyc+Affyf=0
ycAffyf=Afcb
x=Accb−AcfA−1ffAfcb.
Adont les lignes et les colonnes ne sont pas mentionnées dans
(l'espace nul de
G ). Vous pouvez facilement le faire: (i) calculer
z = A f c b ; (ii) utilisez le solveur que vous avez pour résoudre
A f f h = z ; (iii) calculer
x = A c c b - A c f h .
GGz=AfcbAffh=zx=Accb−Acfh
En d' autres termes, étant donné la structure de , la résolution du système linéaire que vous avez est vraiment pas plus difficile que la résolution d' un seul système linéaire avec A .GA