有没有比简单的分而治之算法更快的矩阵求幂方法来计算M n(其中M是矩阵,n是整数)?
您可以将矩阵分解为特征值和特征向量。然后你得到
M = V^-1 * D * V
其中V是特征向量矩阵,D是对角矩阵。要将其提高到第N次方,您将获得类似以下内容的信息:
M^n = (V^-1 * D * V) * (V^-1 * D * V) * ... * (V^-1 * D * V) = V^-1 * D^n * V
因为所有V和V ^ -1项都抵消了。
由于D是对角线的,因此您只需要将一堆(实数)数字提高到n次方,而不是将所有矩阵都提高。您可以在n的对数时间内完成该操作。
计算特征值和特征向量为r ^ 3(其中r是M的行数/列数)。根据r和n的相对大小,此速度可能更快或更慢。