假设我有一个大的(但可能是稀疏的)矩阵 A
,它的维度是 K×K。我有另一个 K×1 向量 b
。
让 Ax=b
。如果我只对 n
的第一个 n < K
行感兴趣,那么在 x
中处理这个的一种方法是计算 x=A\b
并获取第一个 n
元素。
如果K
的维度太大,整个计算不可行,有没有其他方法可以得到这些元素?
最佳答案
我想一种方法是重新排列 A 的列和 x 的行,以便您感兴趣的元素出现在 x 的末尾。然后你将 [A,b] 减少到行梯队形式。最后,为了得到你想要的组件,你取修改后的 A 的右下角 nxn 子矩阵(我们称之为 An),然后求解简化系统 An * xn = bn,其中 xn 表示你所在的 x 的潜艇感兴趣,bn 表示行梯形减少后 b 的最后 n 行。
我的意思是,这里转换为梯队形式仍然很昂贵,但是您不需要解决x中的其余分量,这可以节省您的时间。
关于matlab - 只计算矩阵乘积的必要行,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/42277806/