回 帖 发 新 帖 刷新版面

主题:万分紧急

如何解
      f(t+2)=f(t)+f(t+1) f(1)=f(2)=1;

    这样带初始条件的方程.

回复列表 (共4个回复)

沙发

这是Fibonacci数列,你的意思是求出通项式吧,没有直接可用的函数能解出,要求它你必须把通项式的结构弄出来,这要点经验和耐心,我做了一下,
f(n)=(((1+5^(1/2))/2)^n-((1-5^(1/2))/2)^n)/5^(1/2)

板凳


 请问你是怎样解出来的,我急需要这个matlab程序。谢谢。

3 楼

先把该数列编出来,取20,50,100,500,1000分别画出图案。
从图案可以看出函数增长很快,且是下凹的,就可以猜想该通项
式可能是指数型的。
比如像y=a*r^x这种类型,你可以变下型,两边取对数,
Log(y)=log(r)*x+b,也就是log(y)=px+q。log(y)与x应该成线性关系
这时就可以用polyfit函数进行拟合,我做的数据是
Log(y)=-0.803918+0.481221x
也就是f(x)=e^(-0.803918+0.481221x),f(x)=0.447581*1.61811^x
说明当初的猜想应该是正确的,至少也接近正确了。
剩下的是手工推导了:
把f(n)=c*r^n代入f(n+2)=f(n)+f(n+1) 中
解得
r1=(1+sqrt(5))/2              r2=(1-sqrt(5))/2
这时可以把r1,r2分别代入通式看下,但都不满足f(1)=f(2)=1
这条件。说明刚才的类型并不完善,稍修改下
F(n)=p*(r1)^n-q*(r2)^n
你再试下,确定下p,q的值就行了。



我都是在互交下调试的,没写具体的m文件(除了fib函数的描述),不知道能不能直接写个m文件,用一个函数直接把它解出来(其实我也想了,但想不出)

4 楼


请问哥们,你会二元函数拟合吗?谢谢

我来回复

您尚未登录,请登录后再回复。点此登录或注册