numpy计算斐波那契数列

限于喜欢 提交于 2019-11-28 06:38:20

斐波那契数列的两种方法

Key_Function

np.matrix函数, 创建矩阵

rint函数, 对浮点数取整, 但不改变浮点数类型

Code

import numpy as np    # 第一种方法  F = np.matrix([[1, 1], [1, 0]])  print(F)  '''  [[1 1]   [1 0]]  '''  print((F ** 7)[0, 0])  # 21  print((F ** 2))  '''  [[2 1]   [1 1]]  '''  print((F ** 3))  '''  [[3 2]   [2 1]]  '''  print((F ** 4))  '''  [[5 3]   [3 2]]  '''    # 第二种方法  # 利用黄金分割公式(比奈公式), 加上取整函数, 计算斐波那契数列  n = np.arange(1, 9)  print(n)  # [1 2 3 4 5 6 7 8]  sqrt5 = np.sqrt(5)  # 取开方  print(sqrt5)  # 2.2360679775  phi = (1 + sqrt5) / 2   # 计算黄金分割率  print(phi)  # 1.61803398875  fibonacci = np.rint((phi**n - (-1/phi)**n)/sqrt5)   # rint函数, 对浮点数取整, 但不改变浮点数类型    print(fibonacci)  # [  1.   1.   2.   3.   5.   8.  13.  21.]

 

斐波那契数列的通项公式

通项公式

斐波那契数列与黄金分割率

斐波那契数列,这样一个完全是自然数的数列,通项公式却是用无理数来表达的。而且当n趋向于无穷大时,前一项与后一项的比值越来越逼近黄金分割0.618(或者说后一项与前一项的比值小数部分越来越逼近0.618)。
1÷1=1,1÷2=0.5,2÷3=0.666...,3÷5=0.6,5÷8=0.625…………,55÷89=0.617977……………144÷233=0.618025…46368÷75025=0.6180339886…...
越到后面,这些比值越接近黄金比.

证明

两边同时除以

得到:

的极限存在,设其极限为x,

所以

由于

解得

所以极限是黄金分割比。
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!