Estoy tratando de calcular el inverso de una matriz muy grande (11300x21500) en C++. Hasta ahora he probado las librerías Eigen y Armadillo, pero ambas fallaron en la etapa de inicialización, diciendo que no hay suficiente memoria. ¿Puede haber alguna forma de superar esta situación?Calculando el inverso de una matriz muy grande
Gracias de antemano
P.S
I deben corregir el tamaño de la matriz a 21500x21500. Como sugirió UmNyobe, esta no es una matriz cuadrada. En realidad, es la matriz de observación, X, y estoy tratando de calcular (XTX) -1
tengo una memoria de 8 GB (en un sistema de 64 bits), pero no creo que estoy haciendo uso de todo este espacio de memoria. El administrador de tareas muestra que el uso de memoria en el momento del error es de 1 GB. Tal vez haya un comando de sistema operativo en Windows 7 que cierra una aplicación cuando su uso de memoria excede 1GB.
Por cierto, mi propósito original es ejecutar una regresión sobre esta matriz de observación.
Una cosa más: la mayoría de las columnas en cada fila de la matriz de observación X son cero. ¿Puede haber una forma de aprovechar esto para limitar el uso de la memoria en la operación de inversión?
¿por qué sus dimensiones no son iguales? – UmNyobe
Esa matriz contiene aproximadamente 1GB o 2GB de datos dependiendo de si tiene entradas de matriz de 4 u 8 bytes. ¿Estás en una máquina de 32 bits? –
Steve Iba a publicar sobre la memoria, debe escribirla con más detalle como lo mencionó primero. – UmNyobe