La suite aux deux limites

La suite aux deux limites.

Une suite u est définie par \[ u(0)=\frac{3}{2} \\ u(1)=\frac{5}{3}\] et pour tout entier naturel n : \[u(n+2) = 13- \frac{32}{u(n+1)} +\frac{20}{u(n)\times u(n+1)}\]

  1. Programmer le calcul de u(n). Émettre une conjecture sur la convergence de cette suite.
  2. Chercher le fonctionnement du module python nommé fractions sur le web. Reprogrammer ensuite le calcul des termes de la suite u et émettre à nouveau une conjecture sur la convergence de cette suite.
  3. Commenter.

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.