0 Fibonacci定义

​ > $ f(n+1)=f(n)+f(n-1),\space n >= 1$

1. $\sum(f(n)^2) = f(n)\cdot f(n+1)$

面积之和相等:

image-20230526225541591

证明aka.绘图代码如下

import matplotlib.pyplot as plt
from matplotlib.path import Path
import matplotlib.patches as patches
import numpy as np

def fib(max):
	a, b = 1, 1;
	while a < max:
		yield a;
		a, b = b, a + b;
		
verts = [    
    ]
codes = [
# Path.MOVETO,
# Path.LINETO,
# Path.MOVETO,
# Path.LINETO,
# Path.CLOSEPOLY,
         ]
fig = plt.figure()
ax = fig.add_subplot(111)
max = 30
prev = 1;
sum = 1;
for i, n in enumerate(fib(max)):    
    if (i == 0):
        continue
    if (i % 2):
        rc = plt.Rectangle((prev, 0), n, n)
    else:
        rc = plt.Rectangle((0, prev), n, n)
    prev = n
    sum += n
    rc.set_fill(False) # rectangle , edge size is n = fib(i)
    ax.add_patch(rc)
    ax.set_xlim(0, sum)
    ax.set_ylim(0, sum)
    c_x = rc.get_x() + rc.get_width() / 2  # center .x
    c_y = rc.get_y() + rc.get_height() / 2 # center .y
    ax.text(c_x, c_y, str(n), fontsize = 10)
plt.show()

无穷可数数列(有理分数&双射函数f(N*N)->N image-20230526230514982

max = 8
for k in range(1, max + 1):
    verts.append((0, k))
    codes.append(Path.MOVETO)
    verts.append((k, 0))
    codes.append(Path.LINETO)
    for i in range(0, 2*k + 2):
        x = k - i
        y = i
        plt.plot([x], [y], 'ro')
        ax.text(x, y, str(y) + ':' + str(x), fontsize = 10)
path = Path(verts, codes)
ax.grid()
patch = patches.PathPatch(path, facecolor='orange', lw=2)
ax.add_patch(patch)
ax.set_xlim(0, max)
ax.set_ylim(0, max)

2. $f(n)^2+f(n-1)^2 = f(2*n+2)$

归纳法证明如下: n=1,2 上述等式成立,假设对于n-1,n上式成立: $$ f(2n) = f(n)^2 + f(n-1)^2 \qquad\qquad(1) \\ f(2n+2) = f(n + 1)^2 + f(n)^2 \qquad\qquad (2)\ $$

下面推导n+1的情况 由假设得(2)-(1): $$\begin{align} f(2\cdot n+1) &= f(n+1)^2-f(n-1)^2 \qquad \qquad (3) \end{align}$$

then:

$$\begin{align} f(2\cdot n+3) &= f(2n+1)+f(2n+2)\\ &= 2f(2n+1) + f(2n)\\ &= 2[f(n + 1)^2 - f(n-1)^2] + f(n)^2 + f(n-1)^2\\ &= 2[[f(n + 1) + f(n-1)] \cdot [f(n + 1) - f(n-1)]] + f(n)^2 + f(n-1)^2\\ & = 2f(n)[f(n + 1) + f(n-1)] + f(n)^2 + f(n-1)^2\\ & = 2f(n)f(n + 1) + [f(n) + f(n-1)] ^ 2 \\ & = 2f(n)f(n + 1) + f(n+1)^2 + f(n) ^2 - f(n) ^2\\ & = [f(n) + f(n + 1)] ^2 - f(n) ^2\\ & = f(n+2)^2 - f(n)^2\\ \end{align}$$

then:

$$\begin{align} f(2\cdot n+4) &= f(2\cdot n +3) + f(2n+2)\\ &= f(n+2)^2 - f(n)^2 + f(n + 1)^2 + f(n)^2\\ &= f(n + 1)^2 + f(n+2)^2 \end{align}$$ 因此对于n + 1,结论成立 【Q.E.D】

3. $f(n)\cdot[f(n-1)+f(n+1)] = f(2\cdot n+1)$

性质2证明已经包含。

4. 黄金分割性质

数列$\frac{f(n+1)}{f(n)}$ 收敛,且趋于一个值1.618($\dfrac{[1+\sqrt(5)]} {2}$)

$$ 假设收敛,即对于足够大的n有:\\ k=\frac{f(n)}{f(n+1)}=\frac{f(n+1)}{f(n+2)}\\ let\space a = f(n), b=f(n+1)\Rightarrow b = k\cdot a;\\ \frac{f(n)}{f(n+1)}=\frac{f(n+1)}{f(n+2)}\\ \frac{a}{b} = \frac{b}{a+b}\\ \frac{1}{k} = \frac{k}{1+k}\\ 1+k=k^2\\ 解得:k = \dfrac{[1+\sqrt(5)]} {2}\\ 显然另外一个解\dfrac{[1-\sqrt(5)]} {2}为负值,不适合。\\ $$