Bonjour,
Dans un programme en Python (mais peu importe le langage en fait), je suis amené à inverser une matrice de très grande taille (facilement plusieurs millions de cases, beaucoup plus si la RAM le permettait) contenant des coefficients variant au plus sur 2-3 ordres de grandeurs et positifs. Seuls les coefficients diagonaux sont toujours exactement nuls et, enfin, la matrice est symétrique.
Comme je pouvais m'y attendre, l'inversion de telles matrices me pose des problèmes...
Le premier d'entres-eux (peut-être le seul mais je n'ai pas réussi à aller plus loin pour l'instant) est que le déterminant calculé numériquement est soit nul soit infini. Ca ne m'étonne pas mais ça m'ennuie beaucoup...
Je me suis dit qu'en normalisant la matrice avec quelque chose du genre det(M/max(M)) je pourrais m'en sortir mais ça ne marche que dans certains cas... J'ai aussi essayé de normaliser, puis de calculer le déterminant puis -- avec une inspiration soudaine -- de "normaliser" une seconde fois en divisant par la racine n-ème du déterminant de la matrice normalisée avec n l'ordre de ma matrice. Bref, j'ai tatonné un peu n'importe comment, j'ai trouvé un tas de solutions bancales pour des cas particuliers mais en 30 secondes j'arrive toujours à ressortir une nouvelle matrice dont je ne peux pas calculer correctement le déterminant numériquement... la finalité étant, pour rappel, d'inverser la matrice. Sinon, je pourrais utiliser un algorithme d'inversion ne nécessitant pas de calculer le déterminant, je ne sais pas comment fonction inv() de Python, je vais allez voir ça...
Merci d'avance pour toute aide ou piste de réflexion!
-----