一个大矩阵的许多标准子空间的逆

计算科学 线性代数 矩阵 数字
2021-11-28 12:02:17

我有一个大的矩形可逆矩阵 M(大约 5000x5000),并且我有一个循环,在其中我为每次迭代 i 执行以下操作(大约有 6000 次迭代):

  1. 我得到一个子空间 S_i(在我的问题中,它始终是标准基的子集;例如,“维度 3、300 和 3723”;这些子空间将包含原始 5000 个维度中的大约 100 个)。我无法控制我将被赋予哪个子空间,而且它不是随机的;一些维度比其他维度更“流行”,并且往往会更频繁地出现在 S_i 中。在我的问题中,S_i 不太可能恰好是 M 的不变子空间。
  2. 计算矩形矩阵 N_i,它只是矩阵 N_i 到 S_i 的限制(即从 M 开始,然后删除除子空间对应的矩阵之外的所有行和列;例如,删除除子空间之外的所有行和列)对于 3、300、3723 并删除除 3、300 和 3723 之外的所有列)
  3. 取逆 N_i^-1

例如,如果矩阵 M 是:

1 2 3
4 0 6
7 8 9

并且某些特定迭代的子空间是维度{1,2}(基于一的索引),那么 N_i 是:

1 2
4 0

并且此迭代所需的逆是:

0    0.25
0.5 -0.125

我觉得也许,因为我一遍又一遍地取同一个原始矩阵 M 的部分的逆,而且因为许多行和列的选择比其他行和列更频繁,这 6000 个之间可能存在一些共享计算迭代,特别是在计算逆时的第 3 步。有没有更有效的方法来做到这一点?

0个回答
没有发现任何回复~