J'essaie de calculer l'inverse d'une très grande matrice (11300x21500) en C++. Jusqu'à présent, j'ai essayé les bibliothèques Eigen et Armadillo, mais les deux ont échoué au stade de l'initialisation, en disant qu'il n'y a pas assez de mémoire. Peut-il y avoir un moyen de surmonter cette situation?Calcul de l'inverse d'une très grande matrice
Merci à l'avance
P.S
je devrais corriger la taille de la matrice à 21500x21500. Comme l'a suggéré UmNyobe, il ne s'agit pas d'une matrice carrée. Il est en fait la matrice d'observation, X, et je suis en train de calculer (XTX) -1
J'ai une mémoire de 8 Go (dans un système 64 bits), mais je ne pense pas que je me sers de tout cet espace de mémoire. Le gestionnaire de tâches montre que l'utilisation de la mémoire au moment de l'erreur est de 1 Go. Peut-être qu'il existe une commande OS dans Windows7 qui ferme une application lorsque son utilisation de la mémoire dépasse 1 Go. Par ailleurs, mon but initial était de faire une régression sur cette matrice d'observation.
Encore une chose: la plupart des colonnes de chaque ligne de la matrice d'observation X sont nulles. Peut-il y avoir un moyen de profiter de cela, pour limiter l'utilisation de la mémoire dans l'opération d'inversion?
pourquoi vos dimensions ne sont pas égales ?? – UmNyobe
Cette matrice contient environ 1 Go ou 2 Go de données selon que vous avez des entrées matricielles de 4 ou 8 octets. Êtes-vous sur une machine 32 bits? –
Steve J'allais poster sur la mémoire, vous devriez l'écrire plus en détail comme vous l'avez mentionné en premier. – UmNyobe