n阶常系数线性递推方程矩阵解法

n阶常系数线性递推方程矩阵解法
n阶常系数线性齐次递推关系的解法有很多,特征方程法、生成函数法,但是对于编程最实用的是矩阵解法。
我们定义所要求的f(n) = Ak-1 * f(n - 1) + Ak-2 * f(n - 2) + ... + A0 * f(n-k),其中f(0)...f(k-1)的初值已经给好。
构造k * k的矩阵M:

其中A =(Ak-1 Ak-2 ... A1),I是单位矩阵。
然后构造一个k * 1列向量b:

这样,M * b之后b0的值就是f(k),以此类推,M ^ n * b之后b0的值就是f(k-1+n),算法复杂度O(k ^ 3 * logn)。


你可能感兴趣的:(n阶常系数线性递推方程矩阵解法)