我正在尝试计算P ^ 100,其中P是我的转换矩阵。我想通过对角线化P来做到这一点,这样我们就有P = Q D Q ^ -1。
当然,如果我可以使P成为这种形式,那么我可以轻松地计算出P ^ 100 = Q * D ^ 100 * Q ^ -1。
我发现,例如,如果您只是做P ^ 5,您将得到的所有回报都是一个矩阵,其中P的每个项都被赋予5次幂,而不是实际矩阵本身。
我在这里发现了一个问题,要求检查并查看矩阵是否可对角线化,而不是如何显式构造对角线化矩阵。在matlab中,这非常容易,但是好吧,我在R语言中而不是在matlab中。谢谢!
eigen()
函数将为您构造特征值和特征向量(特征值的矩阵在表达式中为Q
,特征向量的diag()
为D
)。
您还可以使用expm package或答案中描述的其他软件包。
使用其他人的代码的优势在于,它已经过测试和调试,可以使用更快或更健壮的算法。编写自己的方法的优点是您会更好地理解它。