对角化矩阵以计算矩阵幂?

Mat*_*ham 0 r matrix exponent diagonal

我正在尝试计算我的转换矩阵P^100在哪里P。我想通过对角化来做到这P一点,这样我们就有P = Q*D*Q^-1.

当然,如果我可以P成为这种形式,那么我可以轻松计算P^100 = Q*D^100*Q^-1(其中*表示矩阵乘法)。

我发现,如果你这样做P^5,你将得到的回报是一个矩阵,其中 P 的每个条目都被提升到 5 次方,而不是矩阵 ( P*P*P*P*P)的 5 次方。

我在这里发现了一个问题,该问题询问如何检查矩阵是否可对角化,而不是如何明确构造矩阵的对角化。在 MATLAB 中,这非常简单,但好吧,我使用的是 R 而不是 MATLAB。

Ben*_*ker 6

eigen()函数将为您计算特征值和特征向量(特征向量矩阵Q在您的表达式中,diag()特征值是D)。

您还可以使用expm 包中%^%运算符,或此问题的答案中描述的其他包中的函数。

使用别人的代码的优点是它已经过测试和调试,并且可以使用更快或更健壮的算法(例如,通过组合矩阵的两个幂而不是进行特征向量计算来计算矩阵幂通常更有效)。编写自己的方法的优点是您会更好地理解它。