基于特征值的斐波那契数列求解
2015-05-23 10:00
232 查看
最近在听Gilbert Strang的现代公开课,再讲矩阵的对角化展开的应用时,提到了利用特征值求斐波那契数列的例子。斐波那契数列是以前学编程时碰到的练习,有些书甚至用递归来求这个数列(抛开学习练手层面,实际运用是时极为不合理的)。但使用线代的方求指定位置的数列值时,其计算量大大缩小。
该方法的理论基础为
,将两端各自相乘会发现
,这意味着求矩阵的幂只需计算其特征值。接着便需要把斐波那契数列转换到线代的问题上来。斐波那契数列的简单表达就是,这个数列第0项为0,第一项是1,从第三项开始,每一项都等于前两项之和。代数表达即为
,令
,则斐波那契数列线代表达为
,为了凑成这个表达式(因为这样才能使用开始的那个公式)另外定义了一个等式
,这是恒成立的。由此可以知道,数列第n项的值为
。
life is short 就不用c实现了,Matlab实现一分钟都不要:
该方法的理论基础为
,将两端各自相乘会发现
,这意味着求矩阵的幂只需计算其特征值。接着便需要把斐波那契数列转换到线代的问题上来。斐波那契数列的简单表达就是,这个数列第0项为0,第一项是1,从第三项开始,每一项都等于前两项之和。代数表达即为
,令
,则斐波那契数列线代表达为
,为了凑成这个表达式(因为这样才能使用开始的那个公式)另外定义了一个等式
,这是恒成立的。由此可以知道,数列第n项的值为
。
life is short 就不用c实现了,Matlab实现一分钟都不要:
function value=FS(i) A=[1,1; 1,0]; U_0=[1;0]; [V,E]=eig(A); value=V*(E.^(i-2))*inv(V)*U_0;
相关文章推荐
- 基于特征值的斐波那契数列求解
- 一种基于构造测量矩阵的称球问题求解方法
- 基于遗传算法求解车辆路径问题
- 用递归,迭代,通项公式三种方法实现斐波那契数列求解
- 【算法02】3种方法求解斐波那契数列
- 基于蚁群算法求解求解TSP问题(JAVA)
- 使用python求解特征值与特征向量
- 3种方法求解斐波那契数列
- DP思想在斐波那契数列递归求解中的应用
- PDE2D--用Fortran编译器的跨平台的通用性颇佳的基于有限元方法的微分方程(组)求解器
- 3种方法求解斐波那契数列
- hdu 6138 Fleet of the Eternal Throne 基于kmp算法的求解
- 分治法与动态规划求解斐波那契数列
- Java算法--递推算法 求解兔子产子问题或斐波那契数列问题
- 基于蚁群算法求解求解TSP问题(JAVA)
- 3种方法求解斐波那契数列
- 基于梯度场和Hessian特征值分别获得图像的方向场
- 基于粒子群算法求解求解TSP问题(JAVA)
- 基于蚁群算法求解求解TSP问题(JAVA)
- 基于MATLAB的有限元法求解EIT技术的正问题