У меня есть матрицы A и G . A является разреженным и имеет размер n × n с очень большим n (может быть порядка нескольких миллионов). G является матрицей высотой n × m с довольно небольшим m ( 1 < m < 1000 ), и в каждом столбце может быть только один 1 запись с остальным 0 «с, таким образом, что G T G = Я . А огромен, так что это действительно трудно инвертировать, и я могу решить линейную систему, такую как х
Я хочу решить систему вида: ( G T A - 1 G ) x = b , где x и b - векторы длины m . Один из способов сделать это - использовать итерационный алгоритм в итерационном алгоритме, чтобы найти для A - 1 для каждой итерации внешнего итерационного алгоритма. Это было бы чрезвычайно дорого в вычислительном отношении, однако. Мне было интересно, есть ли в вычислительном отношении более простой способ решения этой проблемы.