• Aucun résultat trouvé

TD n°1 - Algorithmes Suites

N/A
N/A
Protected

Academic year: 2022

Partager "TD n°1 - Algorithmes Suites"

Copied!
4
0
0

Texte intégral

(1)

TD n°1 - Algorithmes Suites

Exercice 1. Termes d’une suite définie par une relation de récurrence

# CODE PYTHON def suite(N):

'''In : indice N, entier naturel Out : ? '''

assert N>=0 u=500

n=0

while n<=N:

n=n+1 u= 0.9*u+1 return n,u

Fonction suite(N) assertN>=0 u=500 n=0

Tant quen<=N Faire nn+1 u←0.9×u+1 Fin Tant que

Envoyern,u

Pseudo Code

1. Compléter le tableau suivant afin d’évaluer la valeur des variablesnetupour chaque itération si on choisitN=5.

u 500

n 0

Condition nN=5

VRAIE

Donc la fonction va envoyer : .... , ... si on écritsuite(5)dans la console. Vérifier-le.

2. Expliciter la suite associée à cet algorithme. Pournentier naturel :

(u0= · · · un+1= · · · .

3. On remarque que le programme 1 ne renvoie pas le terme de rang 5 mais le suivant, modifier-le pour corriger ce problème.

4. Modifier le programme afin d’afficher les termes de la suite de rang 1 àN(avec les rangs associés). Vous devrez utiliser une bouclewhile.

5. Écrire un autre programme qui afficher les termes de la suite de rang 0 àN(avec les rangs associés) en utilisant cette fois une boucle "for i in range(...)" :

range(début , fin , pas): Génère une liste d’entiers les paramètresdébutetpassont optionnels.

• Dans l’intervalle [0 , fin[ si un seul paramètre est renseigné.

L = range(4) va créer la liste [0 , 1 , 2 , 3] de 4 termes, le premier sera L[0]=0, le dernier L[3] = 3.

• Dans l’intervalle [début ; fin[ si 2 paramètres sont renseignés.

L = range(1 , 5) va créer la liste [1 , 2 , 3 , 4] le premier terme sera L[0] = 1 et le dernier L[3] = 4.

range(début , fin , pas)

# CODE PYTHON def suite2(N):

'''In : N, entier naturel

Out : affichage termes de rangs 0 à N ''' assert N>=0

u=500

for i in range(...):

u=...

print(i,u)

(2)

TD n°1 - Algorithmes - Suites

6. Conjecturer la limite quandntend vers+∞de la suite (un) à l’aide de vos algorithmes en calculant les termes d’indice 10, 20, 50, 100 par exemple.

u10= · · · ;u20= · · · ;u50= · · · ;u100= · · · · Il semble que la suite (un) tende vers : ...

Exercice 2. Suites définies par une relation de récurrence

Un couple fait un placement au taux annuel de 2 % dont les intérêts sont capitalisés tous les ans. Le couple a placé le montant de 1 000 euros à l’ouverture le 1erjanvier 2010 puis, tous les ans à chaque 1erjanvier, verse 2 400 euros.

On noteunle capital présent sur le compte le 1erjanvier 2010+naprès le versement annuel. On a doncu0=1000 et on admet que pour tout entiern, la suite (un) est définie par :

(u0=1000

un+1=1.02×un+2400 1. Calculer les 6 premiers termes de la suite.

u0= · · · ;u1= · · · ;u2= · · · ;u3= · · · ;u4= · · · ;u5= · · · · 2. Calcul du terme d’indice donné.

L’algorithme suivant cherche à déterminer la somme présente sur le compte après un certain nombre d’années.

Compléter et tester le programme avec quelques valeurs den.

# CODE PYTHON def u(N):

'''In : indice N, entier naturel Out : u(N)'''

assert N>=0 u,n=1000,0 while n<N:

n=n+1 u= ...

return u

fonction u(N) assertN>=0 u,n←1000,0

Tant quen<N Faire nn+1 u← · · · · Fin Tant que Renvoyeru

Pseudo Code

Le texte entre triple apostrophe ’ ’ ’, juste sous la première ligne de la définition de la fonction sui te(i ndi ce), s’appelle ladocstringde la fonction. C’est le texte qui apparaît si on demande de l’aide : sous la formehelp(u)ici.

Remarque

3. Problème de seuil.

L’objectif du couple est de constituer un capital de 18 000 euros.

On cherche donc maintenant à écrire un algorithme qui renvoie l’indice et la valeur du premier terme de la suite qui dépasse un 18 000. Compléter et tester le programme en déterminant l’année durant laquelle le couple aura atteint son objectif. Contrôler le résultat avec la fonction de la question précédente.

def recherche(seuil) :

’ ’ ’renvoie le terme et l’indice de la suite qui dépasse le seuil.’ ’ ’

assertseui l>=1000 u=1000

n=0

while· · · ·:#à compléter n=n+1

u= · · · #à compléter return (n,u)

Code Python

Fonction recherche(seuil) assertseui l>=0 u←1000 n←0

Tant que· · · Faire nn+1

u← · · · · Fin Tant que Renvoyer (n,u)

Pseudo Code

www.math93.com / M. Duffaud 2/4

(3)

TD n°1 - Algorithmes - Suites

u 1 000

n 0 1 2 3 4 5 6 7 8

Condition

· · ·

VRAIE

Année 2010 2011

Exercice 3. La suite de Fibonacci

La suite de Fibonacci est une suite d’entiers dans laquelle chaque terme est la somme des deux termes qui le précèdent.

Elle commence généralement par les termes 0 et 1 .

Elle doit son nom àLeonardo Fibonacci(v. 1175 à Pise - v.

1250) un mathématicien italien qui avait pour nom d’usage « Leonardo Pisano » ou « Léonard de Pise »

Fibonacci dans un problème récréatif posé dans l’ouvrageLi- ber abaci(1202), décrit la croissance d’une population de la- pins :

«Un homme met un couple de lapins dans un lieu isolé de tous les côtés par un mur. Combien de couples obtient-on en un an si chaque couple engendre tous les mois un nouveau couple à compter du troisième mois de son existence? »

Leonardo Fibonacci (1175-1250) On définit donc la suite (Fn) par :

(F0=0 ;F1=1 Fn+2=Fn+1+Fn

1. Calculer les 5 premiers termes de la suite.

2. Écrire une fonctionF(n)qui renvoie le terme de rangn, avecn≥0.

def F(n):

'''In : indice n, entier naturel

Out : F(n), terme de rang n de la suite de Fibonacci''' assert n>=0

...

return F

3. On noteφ(n)=Fn+1

Fn . Écrire une fonctionphi(n)qui renvoie le rapportFn+1

Fn , avecn≥1. Conjecturer la limite de ce rapport.

Comme l’avait déjà remarqué Johannes Kepler(1571-1630), le taux de croissance des nombres de Fibonacci, c’est-à-dire la rapportFn+1

Fn , converge vers le nombre d’orφ=1+p 5 2 .

Remarque historique

www.math93.com / M. Duffaud 3/4

(4)

TD n°1 - Algorithmes - Suites

Exercice 4. Les Factorielles ... c’est ma passion

On noten! (se lit « factorieln») le nombre 1×2×3× · · · ×n, pour tout entier natureln>0. Par convention on définit : (0!=1

n!=1×2×3× · · · ×n ,n∈N

Lanotation factorielleest introduite par le mathématicien Christian KRAMP (1760-1826) en 1808 dansÉléments d’arithmétique universelle(1808).

Remarque historique

Partie A

1. Calculer 1!,2!,3!,4! et 5!.

2. Soitn∈N, exprimer (n+1)! en fonction den!.

3. Écrire une fonctionfact(n)qui renvoien!, avecn≥0.

def fact(n):

'''In : indice n, entier naturel Out : n!'''

assert n>=0 ...

return ..

Partie B

On considère la suite (vn) définie pourn>0 par : vn=

n

X

k=1

1 k!= 1

1!+1

2!+ · · · + 1 n!

On démontrera que la suite (vn) est majorée, puis qu’elle est convergente dans le TD 2 sur les suites.

1. Écrire une fonctionv(n) qui prend en entrée un entiernet qui détermine puis renvoie le terme de rangnde la suite (vn).

2. Bonus : Optimisation

2. a. A l’aide d’un compteur, évaluer le nombre de multiplications effectuées pour calculer 10!.

2. b. Peut-on optimiser ce programme pour faire un minimum de multiplications.

Partie C : une approche de la récursivité (Hors programme)

Un algorithme est dit récursif si il s’appelle lui-même . La factorielle se définit pour des entiers naturels de la fonction suivante :

(0!=1

n!=1×2×3× · · · ×n ,n∈N ou n!=n×(n−1)!

Donc pour définir la fonction qui calcule la factorielle den, il suffit d’appeler cette même fonction mais en lui demandant de calculer la factorielle de (n−1), et multiplier le résultat parn.

La factorielle de (n−1) sera calculée en calculant la factorielle de (n−2) et ainsi de suite. Il suffit juste de définir que la factorielle de 1 est 1 pour "arrêter la récursion" et ne plus appeler la fonction qui calcule la factorielle.

Vérifier alors que ce programme calcule bien la factorielle den.

def g(n):

'''In : indice n, entier naturel Out : n!'''

assert n>=0 if n==0:

return 1 else:

return n*g(n-1)

[ Fin du devoir \

www.math93.com / M. Duffaud 4/4

Références

Documents relatifs

Calcul du terme d'une suite géométrique, Déterminer les termes d'une suite géométrique de raison donnée.. La suite est-elle géométrique ?, Utilisation des suites géométriques

[r]

A priori, il serait possible que la suite de Syracuse de certaines valeurs de départ n’atteigne jamais la valeur 1, soit qu’elle aboutisse à un cycle différent du cycle trivial,

Donc pour montrer qu’elle est convergente, il suffit de v´ erifier qu’elle est

Il est possible d’obtenir somme et suite en allant dans le catalogue (pour cela, taper 2nde 0 ) et on cherche dans la liste... Avec calculatrice TI 83-Plus modèle noir et

D'après les valeurs affichées il semble que la suite (S n ) soit croissante.. Partie B -- Étude d'une

termes somme résultat..

Résumé sur les suites arithmétiques et géométriques... Somme