Programmation à l'aide de nombres de type float.
def u(n):
a=3/2
b=5/3
if n==0 : return a
if n==1 : return b
for k in range(2,n+1) :
a,b=b,13-32/b+20/(a*b)
return b
for n in (10, 200, 500, 10000, 200000) :
print('Pour n={}, la valeur calculée de u(n) est {}.'.format(n, u(n)) )
Réponse de python3 :
Pour n=10, la valeur calculée de u(n) est 1.9990243905160998.
Pour n=200, la valeur calculée de u(n) est 10.0.
Pour n=500, la valeur calculée de u(n) est 10.0.
Pour n=10000, la valeur calculée de u(n) est 10.0.
Pour n=200000, la valeur calculée de u(n) est 10.0.
Il semble bien que l'on puisse conjecturer que la suite u converge vers 10.
Programmation avec le module fractions
Pour en savoir plus sur ce module :
site de documentation de python.
from fractions import Fraction
def v(n):
a=Fraction('3/2')
b=Fraction('5/3')
if n==0 : return a
if n==1 : return b
for k in range(2,n+1) :
a,b=b,Fraction('13')-Fraction(32,b)+Fraction(20,(a*b))
return b
for n in (10, 200, 500, 10000) :
print('Pour n={}, la valeur calculée de u(n) est {}.'.format(n, float(v(n))) )
on obtient :
Pour n=10, la valeur calculée de u(n) est 1.9990243902439024.
Pour n=200, la valeur calculée de u(n) est 2.0.
Pour n=500, la valeur calculée de u(n) est 2.0.
Pour n=10000, la valeur calculée de u(n) est 2.0.
On conjecture maintenant une limite de 2. !!!??
Pour en savoir plus sur ce thème,
un article à lire.