Python : algorithme de seuil

Un algorithme de seuil est un algorithme ayant pour objectif de trouver le premier entier \(n_0\) à partir duquel tous les termes de la suite \((u_n)\) satisfont une condition imposée.

Algorithme de seuil en Python
Algorithme de seuil en Python

Exemple 1 : suite définie de façon explicite

On considère la suite \((u_n)\) définie pour tout entier naturel n par l’égalité:$$u_n=\frac{n^2+3x+5}{n^2+1}.$$On cherche le premier entier \(n_0\) à partir duquel \(u_n \leqslant 1,1\).

Le programme suivant peut alors être considéré:

# on définit une fonction u(n) qui retourne la valeur de u(n)
def u(n):
    return (n*n + 3*n + 5) / (n*n + 1)

# ici commence le programme de seuil
n = 0
while u(n) > 1.1:
    n = n + 1
    
print("Le premier entier 'n' tel que u(n) <= 1.1 est : {}".format(n))

Ce programme affiche la valeur 32 car \(u_{31}\approx1.1008>1.1\) (donc la condition de la boucle while est vraie, ce qui a pour conséquence d’entrer dans la boucle et d’ajouter 1 à n), et comme \(u_{32}\approx 1.09756<1.1\), la condition de la boucle while n’est plus satisfaite, ce qui fait que l’on sort de la boucle. La valeur stockée dans n est donc 32.

Exemple 2 : suite définie par récurrence

On considère la suite \((v_n)\) définie par son premier terme \(v_0=7\) et par la relation de récurrence:$$v_{n+1}=\frac{1}{2}\left(v_n+\frac{5}{v_n}\right)$$pour tout entier naturel n.

Déterminons le premier indice à partir duquel \(v_n \leqslant 2.24\). On utilise alors le programme suivant:

 # on commence par initialiser les variables
n = 0
v = 7

# ici commence le programme de seuil
while v > 2.24:
    n = n + 1 # l'indice du terme est incrémenté de 1
    v = 0.5 * (v + 5 / v) # on utilise la relation de récurrence pour calculer le terme suivant
    print(v)
    
print("Le premier entier 'n' tel que v(n) <= 2.24 est : {}".format(n))

Il affiche la valeur 4. En effet, \(v_3\approx 2.26 > 2.24\) alors que \(v_4\approx 2.236\).

N’oubliez pas que si vous avez besoin d’un cours de maths, vous pouvez réserver un cours sur cette page.

[Retour à la page précédente]

Supportscreen tag