您的位置:首页 > 其它

基于特征值的斐波那契数列求解

2015-05-23 10:00 232 查看
     最近在听Gilbert Strang的现代公开课,再讲矩阵的对角化展开的应用时,提到了利用特征值求斐波那契数列的例子。斐波那契数列是以前学编程时碰到的练习,有些书甚至用递归来求这个数列(抛开学习练手层面,实际运用是时极为不合理的)。但使用线代的方求指定位置的数列值时,其计算量大大缩小。

    该方法的理论基础为

,将两端各自相乘会发现

,这意味着求矩阵的幂只需计算其特征值。接着便需要把斐波那契数列转换到线代的问题上来。斐波那契数列的简单表达就是,这个数列第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;


 

 

 

    

 

 
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  线性代数