假设我有一个大的(但可能是稀疏的)矩阵 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/

10-11 22:32
查看更多