是否有更快的方法来计算矩阵的几何级数?

计算科学 matlab 矩阵
2021-12-17 22:23:50

我想计算矩阵的几何级数A

S=I+A+A2++An

然后应用于向量v,Sv.

我已经在 Matlab 中使用循环完成了它,我认为应用矩阵非常有效Av在每一步而不是计算S第一的。

无论如何,我尝试使用S=(IAn)(IA)1,但是在计算逆时我得到一个错误,因为A几乎是单数。

在这种情况下,计算逆是一种有效的方法吗?我认为它会比循环更好,因为 Matlab 处理矩阵非常好。

我知道A 具有主导对角线和三对角线。

1个回答

也许它有助于分解v就(归一化)特征向量而言wi矩阵的A. 令对应的特征值为λi, 以便Awi=λiwi.

如果ci=<wi,v>然后(I+A+A2+...+An)v=ici(1+λi+λi2+...+λin)wi

对于具有|λi1|>ϵ您可以使用(1λin+1)/(1λi)快速计算您的总和,对于其他人,您可以例如进行显式求和。