TD 2
TD 2
TD 2
Algorithme
—Master et Complexité
Cours d’analyse, algorithmique
2 CCI—
Sous-programmes, fonctions
Cette séance de travaux dirigées est consacrée à l’écriture et à l’utilisation de fonctions. On
prendra bien soin de commenter chaque fonction pour préciser son mode d’emploi.
1
x Exercice 4. Racine carrée
On montre en mathématique que étant donné un réel positif a la suite
un + a/un
u0 := a, un+1 := (2)
2
√
converge vers a.
6. Écrire une fonction qui calcule la racine carrée d’un réel a. Par définition, la racine carrée est la
solution x de l’équation x2 = a. On utilisera ce test et la fonction egal définie plus haut pour
vérifier que l’on a bien le résultat.
x Exercice 5. Exponentielle
La fonction exponentielle est définie par
∞
X
exp(a) := ai /i! . (3)
i=0
7. En réutilisant la fonction égal écrire une fonction exponentielle qui calcule l’exponentielle d’un
PN
nombre a. On utilisera une boucle et un accumulateur pour calculer les sommes i=0 ai /i!. On
stoppe la boucle dès que deux sommes calculées consécutivement sont «égales».
Cette méthode n’est pas très efficace car, en utilisant les fonctions factorielle et puissance, on
recalcule plusieurs fois les même produits. Pour aller plus vite, on peut, dans la même boucle, accumuler
la factorielle, la puissance et la somme.
8. Écrire une fonction exponentielle2 qui fait le calcul plus rapidement en utilisant les trois
accumulateurs dans la même boucle. On gardera la même condition d’arrêt de la boucle.
x Exercice 6. Logarithme
Pour calculer le logarithme d’un nombre positif a, on peut utiliser de la même manière que pour
la racine le fait que la suite
a
u0 := a, un+1 := un + −1 (4)
exp(un )
√
1 ln(x)
x = x 2 = exp . (5)
2