À ma connaissance, il existe 4 façons de résoudre un système d'équations linéaires (corrigez-moi s'il y en a plus):
- Si la matrice système est une matrice carrée de rang complet, vous pouvez utiliser la règle de Cramer;
- Calculer l'inverse ou le pseudoinverse de la matrice système;
- Utiliser des méthodes de décomposition matricielle (l'élimination gaussienne ou gaussienne-jordanienne est considérée comme une décomposition LU);
- Utilisez des méthodes itératives, telles que la méthode du gradient conjugué.
En fait, vous ne voulez presque jamais résoudre les équations en utilisant la règle de Cramer ou en calculant l'inverse ou le pseudoinverse, en particulier pour les matrices de grande dimension, donc la première question est de savoir quand utiliser les méthodes de décomposition et les méthodes itératives, respectivement. Je suppose que cela dépend de la taille et des propriétés de la matrice du système.
La deuxième question est, à votre connaissance, quel type de méthodes de décomposition ou méthodes itératives conviennent le mieux à certaines matrices de système en termes de stabilité numérique et d'efficacité.
Par exemple, la méthode du gradient conjugué est utilisée pour résoudre des équations où la matrice est symétrique et définie positive, bien qu'elle puisse également être appliquée à n'importe quelle équation linéaire en convertissant en . Aussi pour une matrice définie positive, vous pouvez utiliser la méthode de décomposition de Cholesky pour rechercher la solution. Mais je ne sais pas quand choisir la méthode CG et quand choisir la décomposition Cholesky. Mon sentiment est que nous ferions mieux d'utiliser la méthode CG pour les grandes matrices.A T A x = A T b
Pour les matrices rectangulaires, nous pouvons utiliser la décomposition QR ou SVD, mais encore une fois, je ne sais pas comment en choisir une.
Pour les autres matrices, je ne sais pas maintenant comment choisir le solveur approprié, telles que les matrices hermitiennes / symétriques, les matrices clairsemées, les matrices de bandes, etc.