Approximation du nombre d'or
On note $\varphi=\dfrac{1+\sqrt{5}}{2}$ le nombre d'or.
Suite n°1
On admet que la suite $(a_n)$ définie par $a_0=2$ et pour tout entier $n$ :
$$a_{n+1}=1+\dfrac{1}{a_n}$$
converge vers $\varphi$.
def phi1(p):
a = 2
n = 0
diff = 2
while diff >=p:
a2 = a
a = 1 + 1.0/a
diff = abs(a2-a)
n = n+1
return [n,a]
print phi1(0.001)
print phi1(0.000001)
print phi1(0.000000001)
Suite n°2
On admet que la suite $(b_n)$ définie par $b_0=2$ et pour tout entier $n$ :
$$b_{n+1}=\sqrt{1+b_n}$$
converge vers $\varphi$.
from math import*
def phi2(p):
b = 2
n = 0
diff = 2
while diff >=p:
b2 = b
b = sqrt(1.0+b)
diff = abs(b2-b)
n = n+1
return [n,b]
print phi2(0.001)
print phi2(0.000001)
print phi2(0.000000001)
Suite n°3
On admet que la suite $(c_n)$ définie par $c_0=2$ et pour tout entier $n$ :
$$c_{n+1}=\dfrac{c_n^2+1}{2c_n-1}$$
converge vers $\varphi$.
from math import*
def phi3(p):
c = 2
n = 0
diff = 2
while diff >=p:
c2 = c
c = (c*c+1.0)/(2*c-1.0)
diff = abs(c2-c)
n = n+1
return [n,c]
print phi3(0.001)
print phi3(0.000001)
print phi3(0.000000001)
À partir de la suite de Fibonacci
La suite de Fibonacci est définie par $u_0=u_1=1$ et pour tout entier $n$ :
$$u_{n+2}=u_{n+1}+u_n.$$
On admet que la suite $(d_n)$ définie pour tout entier $n$ par $d_n=\dfrac{u_{n+1}}{u_n}$ converge vers $\phi$.
def fibonacci(n):
v = 1
u = 1
for i in range(1,n):
w = v
v = u
u = u+w
return u
def ratio(n):
return (1.0*fibonacci(n+1))/fibonacci(n)
def convergence(p):
diff = 2
n = 0
while diff >= p:
diff = abs( ratio(n+1)-ratio(n) )
n = n+1
return [n,ratio(n)]
print convergence(0.001)
print convergence(0.000001)
print convergence(0.000000001)