Chapitre 1
Représenter des suites
1.1 Algorithme
1.1.1 Suite définie par une formule explicite
Par exemple on souhaite représenter la suite un= 1 + (1)n
n.
On utilise une fonction :
fonction : u(E: n de type entier, S: Ude type réels)
début
U1 + (1)n
n
Retourner U
Algorithme 1: Suite un= 1 + (1)n
n
Écrire cet algorithme en python.
1.1.2 Suite définie par récurrence
Par exemple on souhoite par exemple obtenir les termes de la suite
un+1 =2un+ 3
un+ 4
u0= 0
On représente une suite à l’aide d’une fonction.
fonction : u(E: n de type entier, S: unde type réel)
Variable : U de type réel
début
U0
pour iallant de 1 à nfaire
U(2 ×U+ 3)/(U+ 4)
Retourner U
Algorithme 2: Suite un
Traduire cet algorithme en python. Aide : attention range(n) va de 0 à n-1
Modifions cet algorithme pour obtenir une liste des termes de la suite (un).
Entrées :n
fonction : u(E: : n de type entier, S: L: liste de n+1 réels)
Variable : U de type réel
début
S[0] 0
Pouriallant de 1 à n
Ajouter (2 ×S[i] + 3)/(S[i] + 4) à S.
Retourner S
Algorithme 3: Suite un
1
1.2 Avec python3
1.2.1 Suite définie par une formule explicite
Par exemple pour la suite un= 1 + (1)n
non utilise la fonction :
def u(n):
U=1+(-1)**n/n
return U
Tester cette fonction.
1.2.2 Suite définie par récurrence
Par exemple on souhaite représenter la suite
un+1 =2×un+ 3
un+ 4
u0= 0
Avec affectations
On définie la suite à l’aide d’une fonction
def u(n):
U=0
for iin range(1,n+1):
U=((2*U+3)/(U+4))
return U
On teste cette fonction.
Pour afficher les onzes premières valeurs on appliquera une boucle for.
for iin range(11):
print(``u_{}={}''.format(i,u(i)))
Il souvent utile d’obtenir à la liste de tous les termes de la suite (un) jusqu’à nà l’aide d’un
tableau.
Modifier la fonction comme ceci
# renvoie la liste
def u(n):
U=[0] # u_0=0
for iin range(1,n+1):
U.append( (2*U[i-1]+3)/(U[i-1]+4))
return U
s=u(11)
print(s)
print(s[-1]) # c'est le dernier
Il existe un module pour faire du calcul formel sous python, c’est sympy.
import sympy
sympy.simplify(1+3/2)
sympy.simplify('1+3/2')
Vous avez compris le principe ?
def u(n):
U=0
for iin range(1,n+1):
U=sympy.sympify("(2*{0}+3)/({0}+4)".format(U) )
return U
print(u(11))
Essayer de modifier la fonction précédente pour retourner une liste de u0àunsous forme exacte.
def v(n):
U=[0]
for iin range(1,n):
U.append( sympy.sympify( "(2*{0}+3)/({0}+4)".format(U[i-1]) ))
return U
Fonction récursive
Les fonctions récursives existe sous python mais sachez que certain langages comme le lisp sont
plus performant avec des programmes récursif que python ne l’est.
def u(n):
if n==0:
return 0# c'est u_0
else:
return (2*u(n-1)+3)/(u(n-1)+4)
print(u(11))
Et en utilisant sympy
def u(n):
if n==0:
return 0
else:
return sympy.sympify("(2*{0}+3)/({0}+4)".format(u(n-1)))
1 / 3 100%
La catégorie de ce document est-elle correcte?
Merci pour votre participation!

Faire une suggestion

Avez-vous trouvé des erreurs dans linterface ou les textes ? Ou savez-vous comment améliorer linterface utilisateur de StudyLib ? Nhésitez pas à envoyer vos suggestions. Cest très important pour nous !