假设我有一个常数矩阵A,我想计算pow(A, n)。 如此问题所述,我可以计算其特征值分解(或更一般地,其不变子空间和广义模态矩阵)以加速该过程。
如果A是大小为k的方阵,则通过平方幂运算,该算法的复杂度为O(k log n),预处理成本(计算模态矩阵)为O(k ^ 3)。
我正在考虑的问题是精度丧失。 计算特征值等将我们从整数域带入浮点数。 即使最终,我们知道pow(A,n)必须具有所有整数条目,上述算法仅计算浮点数。
另一种方法是仅利用平方幂,但这只给我们一个O(k^3log n)算法。
是否有一种准确 - 不转换为浮点数 - 可以快速计算pow(A,n)的方法?
如果A是大小为k的方阵,则通过平方幂运算,该算法的复杂度为O(k log n),预处理成本(计算模态矩阵)为O(k ^ 3)。
我正在考虑的问题是精度丧失。 计算特征值等将我们从整数域带入浮点数。 即使最终,我们知道pow(A,n)必须具有所有整数条目,上述算法仅计算浮点数。
另一种方法是仅利用平方幂,但这只给我们一个O(k^3log n)算法。
是否有一种准确 - 不转换为浮点数 - 可以快速计算pow(A,n)的方法?
[1 1]
在[1 0]
上的运算。它的特征值为(1+sqrt(5))/2
和(1 - sqrt(5))/2
。任意精度有理数也无法拯救你。 - btilly