首页 > 其他分享 >使用数学归纳法证明斐波那契数列通项公式

使用数学归纳法证明斐波那契数列通项公式

时间:2023-05-01 14:23:07浏览次数:33  
标签:phi dfrac sqrt 证明 斐波 通项 公式 那契 hat

使用数学归纳法证明斐波那契数列通项公式:\(F_{n} = \dfrac{\phi^{n} - \hat{\phi}^{n}}{\sqrt{5}}\)

定义

已知斐波那契数列 \(F\) 定义为:

\[F_{n} = \begin{cases} 0, n = 0\\ n, n = 1\\ F_{n-1} + F_{n-2}, i \ge 2 \end{cases} \]

\(\phi\) 和 \(\hat{\phi}\) 分别为方程 \(x^2 + x + 1 = 0\) 的两个解,且 \(\phi > \hat{\phi}\)。具体而言,\(\phi = \dfrac{1 + \sqrt{5}}{2}\),\(\hat{\phi} = \dfrac{1 - \sqrt{5}}{2}\)。

证明:\(F_{n} = \dfrac{\phi^{n} - \hat{\phi}^{n}}{\sqrt{5}}\)。

证明

使用数学归纳法进行证明。

思路如下:先通过代入证明该公式当 \(n = 0\) 和 \(n = 1\) 时成立。再证明,若该公式当 \(n = k - 2\) 和 \(n = k - 1\) 时成立,则当 \(n = k\) 时也成立。

如此,因为 \(i = 0\) 和 \(i = 1\) 时成立,可推出 \(i = 2\) 时该公式也成立;因为 \(i = 1\) 和 \(i = 2\) 时成立,可推出 \(i = 3\) 时该公式也成立,以此类推,就可以证明该公式对于所有自然数都成立。

根据以上思路,首先先证明该公式当 \(n = 0\) 和 \(n = 1\) 时成立。这一步可以通过简单的直接代入证明,如下:

\[F_0 = \dfrac{\phi^{0} - \hat{\phi}^{0}}{\sqrt{5}} = \dfrac{1 - 1}{\sqrt{5}} = 0 \\ F_1 = \dfrac{\phi^{1} - \hat{\phi}^{1}}{\sqrt{5}} = \dfrac{1 + \sqrt{5} - (1 - \sqrt{5})}{2} \times \dfrac{1}{\sqrt{5}} = \dfrac{2\sqrt{5}}{2\sqrt{5}} = 1 \]

因为我们已知 \(F_0 = 0\),\(F_1 = 1\),所以该公式对于 \(n = 0\) 和 \(n = 1\) 时是成立的。

下面,我们要证明,若该公式当 \(n = k - 2\) 和 \(n = k - 1\) 时成立,则当 \(n = k\) 时也成立。这也正是难点所在(不过事实上,也并没有特别难)。

因为该公式当 \(n = k - 2\) 和 \(n = k - 1\) 时成立,所以我们可以表示出 \(F_{k-2}\) 和 \(F_{k-1}\) 的值:

\[F_{k-2} = \dfrac{\phi^{k-2} - \hat{\phi}^{k-2}}{\sqrt{5}}, F_{k-1} = \dfrac{\phi^{k-1} - \hat{\phi}^{k-1}}{\sqrt{5}} \]

根据斐波那契数列的定义,我们知道 \(F_{n} = F_{n-2} + F_{n-1}\),也就是说

\[F_{k} = \dfrac{\phi^{k-2} - \hat{\phi}^{k-2}}{\sqrt{5}}+ \dfrac{\phi^{k-1} - \hat{\phi}^{k-1}}{\sqrt{5}} \]

我们要证明 \(F_{n} = \dfrac{\phi^{n} - \hat{\phi^{n}}}{\sqrt{5}}\),也就是要把上面这个和式 \(\dfrac{\phi^{k-2} - \hat{\phi}^{k-2}}{\sqrt{5}}+ \dfrac{\phi^{k-1} - \hat{\phi}^{k-1}}{\sqrt{5}}\) 化简成前面的形式。那么我们开始计算,看看是否可行:

\[\begin{aligned} F_{k} & = \dfrac{\phi^{k-2} - \hat{\phi}^{k-2}}{\sqrt{5}}+ \dfrac{\phi^{k-1} - \hat{\phi}^{k-1}}{\sqrt{5}} \\ & = \dfrac{\phi^{k-2} - \hat{\phi}^{k-2} + \phi^{k-1} - \hat{\phi}^{k-1}}{\sqrt{5}} \\ & = \dfrac{\phi^{k-2}(1 + \phi) + \hat{\phi}^{k-2}(1 + \hat{\phi})}{\sqrt{5}} \qquad \text{提出公因式} \end{aligned} \]

到这里似乎有点不太找得到头绪,不过我们可以从 \(\phi\) 和 \(\hat{\phi}\) 两个数本身的性质入手。我们知道它们是方程 \(x^2 + x + 1 = 0\) 的两个解,所以一下两个式子是成立的:

\[\phi + 1 = \phi^2 \\ \hat{\phi} + 1 = \hat{\phi} ^ 2 \]

把这两个式子代入上式,

\[\begin{aligned} F_{k} & = \dfrac{\phi^{k-2}(1 + \phi) + \hat{\phi}^{k-2}(1 + \hat{\phi})}{\sqrt{5}} \\ & = \dfrac{\phi^{k-2} \times \phi^2 + \hat{\phi}^{k-2} \times \hat{\phi}^{2}}{\sqrt{5}} \\ & = \dfrac{\phi^{k} - \hat{\phi}^k}{\sqrt{5}} \end{aligned} \]

即 \(F_{n} = \dfrac{\phi^{n} - \hat{\phi^{n}}}{\sqrt{5}}\)

因此得证。

\[Q.E.D \]

2023 年 5 月 1 日

标签:phi,dfrac,sqrt,证明,斐波,通项,公式,那契,hat
From: https://www.cnblogs.com/dengstar/p/17366490.html

相关文章

  • 斐波那契数列第n项
    importjava.util.Scanner;publicclassMain{ publicstaticvoidmain(String[]args){ Scannersc=newScanner(System.in); intn=sc.nextInt(); inta=1,b=1,i=1; while(i<n){ intc=a+b; a=b; ......
  • Python 斐波那契数列
    概念:斐波那契数列又称黄金分割数列,即:1,1,2,3,5,8,13,21,…,这个数列前两项都是1,从第3项开始,每一项都等于前两项之和。随着数列的增加,前一项与后一项的比值逼近0.6180339887这个黄金分割系数 code:deffiblist(input):fib=[1,1]#第一和第二项固定为值为1......
  • 代码随想录Day38-Leetcode509. 斐波那契数,70. 爬楼梯,746. 使用最小花费爬楼梯
    咳咳,因为找实习+摆导致时间被浪费大半;先从动态规划学起吧,之前的慢慢补。理论基础动态规划的解题步骤1.确定dp数组及对应下标的含义2.确定dp的状态转移方程(递推公式)3.确定dp数组如何初始化4.确定dp遍历顺序5.距离推导dp数组验证509.斐波那契数题目链接:https://le......
  • 剑指 Offer 10- I. 斐波那契数列
     分析:偷个懒,上次做的一样的题代码:1classSolution(object):2deffib(self,n):3"""4:typen:int5:rtype:int6"""7ifn<2:8returnn9f=[0foriinra......
  • 1137. 第 N 个泰波那契数
     分析;跟上道题一样,只不过变成了前三个状态的和直接给出代码,一次性过 代码:1classSolution(object):2deftribonacci(self,n):3"""4:typen:int5:rtype:int6"""7ifn==0:8return0......
  • 509. 斐波那契数
     分析:简单动态规划,状态转移已经给出直接写代码但是出了一个小问题,由于粗心,这题是从0算起,到n我给的范围没有到n修改提交通过代码:1classSolution(object):2deffib(self,n):3"""4:typen:int5:rtype:int6"""......
  • 斐波那契数列
    斐波那契数列 公式:F(n)=F(n-1)+F(n-2)  步骤: 1、初始化:第0项为0,第1项为1if(n<=1){  returnn;} 2、设置参数,确保第二项也为1intres=0;inta=0;intb=1; 3、从2开始循环到n,把自己的值赋给下一项for(inti=2;i<=n;i++){  res=a+......
  • 03 | 写一个能产生斐波那契数列的range——惰性求值
    1.首先为了满足range概念的要求我们需要提供begin()和end()2.begin()和end()返回的应该是迭代器,注意这个地方两种可以返回两种不同类型(c++17后即可)3.为了满足迭代器概念的要求我们提供5个typedef,并根据std::input_iterator_tag类型决定我们要实现的“解引用函数”,......
  • 斐波拉契数列
    古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少? 先写出来前几个月的兔子数,分别是1、1、2、3、5、8、13、21、34......就是这样一组数列,第三个数是前两个数的和,也就是n=(n-1)+(n-2) ......
  • 剑指Offer——10-I.斐波那契数列(c语言)
    title:剑指Offer10-I.斐波那契数列(c语言)写一个函数,输入n,求斐波那契(Fibonacci)数列的第n项。斐波那契数列的定义如下:F(0)=0,F(1)=1F(N)=F(N-1)+F(N-2),其中N>1.斐波那契数列由0和1开始,之后的斐波那契数就是由之前的两数相加而得出。答案需要取......