用MATLAB求解菲波那契问题
借助Z变换及反变换求解如下菲波那契问题:f(n+2)=f(n+1)+f(n),f(0)=1,f(1)=2。该问题原意是:式中f(0)=1表示初始有一对兔子;f(1)=2表示一繁殖周期后,那对兔子成熟并生育另一对小兔,因此兔子总对数为2。依次类推,求经过n个周期后,兔子有多少对,即菲波那契数列通项f(n)的值。进而,计算比值序列f(n)/f(n+1),观察该值是否随n的増大,而趋向黄金比值0.618。还请绘制还请绘制n从1到15之间的f(n)、f(n)/f(n+1)的图形。(提示:差分方程初值问题的求解;Z变换, trans,lztrans;stem、plot:菲波那契数列常用于股市分析)
程序
clear
clc
syms n f(n) z Fn
q0=ztrans(f(n),n,z);
q1=ztrans(f(n+1),n,z);
q2=ztrans(f(n+2),n,z);
fn1=q2-q1-q0==0;
Fn2=subs(fn1,[f(0),f(1),ztrans(f(n),n,z)],[1,2,Fn]);
Fn3=solve(Fn2,Fn);
fn2=iztrans(Fn3,z,n)%斐波那契数列通项
fn3=simplify(fn2,‘IgnoreAnalyticConstraints’,true);
fn4=simplify(fn2,‘Steps’,40)
ff1=subs(fn2,n,n+1);
ff2=fn2/