Applicate_Matrix_in_Recursion
矩阵变换求解线性递归关系
0x1.矩阵变换求解线性递归关系
问题:对于线性递归函数f(x),计算f(N),其中N是大数。
以斐波那契数列f(i)=f(i-1)+f(i-2)为例。
分4步求解:
- 确定K,对于任意M>K,都有f(i)与f(i-K)无关
f(i)=f(i-1)+f(i-2),因此K=2
- 确定初始变量F1
f(1)=1,f(2)=1,初始变量为[1,1]
- 确定变换矩阵T,使对于任意i,有
假设有
T=[0,1],[1,1]
- 确定Fn
1 | a=matrix([1,1]).transpose() |
0x2. 欧几里得算法&扩展欧几里得
- 递推公式
- 初始变量:M=[x,y]
- 变换矩阵
- Fn
同时注意到,由于最后有
1 | ext = matrix([[1,0],[0,1]]) |