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

问题描述 投票:0回答:1

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

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

[我发现,如果您只执行P^5,您将获得的回报是一个矩阵,其中P的每个项都被提高到矩阵的5次幂,而不是矩阵的5次幂(P*P*P*P*P) 。

我在这里发现了一个问题,询问如何检查矩阵是否可对角线化,而不是如何显式构造矩阵的对角线。在MATLAB中,这非常容易,但是我使用的是R,而不是MATLAB。

r matrix exponent diagonal
1个回答
3
投票

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

您还可以在%^%中使用expm package运算符,或在this question的答案中描述的其他包中的功能。

使用其他人的代码的优势在于它已经过测试和调试,并且可以使用更快或更健壮的算法(例如,通过composing powers of two of the matrix来计算矩阵幂通常比进行特征向量计算更有效)。编写自己的方法的优点是您会更好地理解它。

© www.soinside.com 2019 - 2024. All rights reserved.