Вычисление обратной очень большой матрицы

Я пытаюсь вычислить обратную очень большую матрицу (11300x21500) в C++. До сих пор я пробовал библиотеки Eigen и Armadillo, но обе потерпели неудачу на этапе инициализации, говоря, что не хватает памяти. Можно ли как-то побороть эту ситуацию?

Заранее спасибо

P.S.
Я должен исправить размер матрицы до 21500x21500. Как предположил УмНёбе, это не квадратная матрица. На самом деле это матрица наблюдения, X, и я пытаюсь вычислить ( XTX) -1

У меня есть 8GB память (в 64-битной системе), но я не думаю, что использую все это пространство памяти. Диспетчер задач показывает, что использование памяти на момент ошибки составляет 1 Гб. Возможно, в Windows7 есть команда ОС, которая закрывает приложение, когда его использование памяти превышает 1 ГБ.

Между прочим, моя первоначальная цель состояла в том, чтобы провести регрессию по этой матрице наблюдений.

Еще одно: большинство столбцов в каждой строке матрицы наблюдения X равны нулю. Есть ли способ воспользоваться этим, чтобы ограничить использование памяти в операции инвертирования?

10
задан Mat 28 May 2012 в 11:07
поделиться