MPSI : TP d`informatique Dichotomie et calculs d
Transcription
MPSI : TP d`informatique Dichotomie et calculs d
MPSI : TP d’informatique Dichotomie et calculs d’intégrales 1 Dichotomie 1. Traduire en python l’algorithme de calcul de solution approchée d’une équation par la méthode dichotomie. Pour mémoire, l’algorithme était le suivant : Entrées : f : fonction, h : flottant strictement positif, a, b flottants Sorties : un encadrement d’un nombre x ∈ [a, b] tel que f (x) = 0, à la précision h Variables : deb, f in, m flottants début Vérifier que f (a). f (b) < 0, sinon renvoyer une erreur. deb ← a f in ← b tant que f in − deb ≥ h : f in + deb m← 2 si f (m). f (deb) < 0 : f in ← m sinon: deb ← m fin fin renvoyer (deb, f in) fin Algorithme 1 : dichotomie 2. Démontrer que l’algorithme termine. 3. Calculer le nombre de fois que la boucle "tant que" s’effectue en fonction de a, b, et h. 4. Quelle est l’opération élémentaire potentiellement la plus coûteuse dans cet algorithme ? Dans la suite, lorsqu’on parlera de complexité, nous compterons uniquement cette opération. 5. Calculer la complexité de cet algorithme. On donnera d’abord la complexité exacte, puis un équivalent, puis un ordre de grandeur (i.e. un "grand O"). 6. Démontrer la correction de cet algorithme. 7. On suppose que f (a) < 0. En quoi cela permet-il d’améliorer la vitesse de l’algorithme ? Et dans le cas où f (a) > 0, comment se ramener à la situation f (a) < 0 ? Écrire l’algorithme optimisé, et le programmer sous python. √ 8. Applications immédiates : calculer des valeurs approchées de 2 et π à la précision maximale possible avec le type flottants. 9. Application moins immédiate : demander à Eric. 2 Calcul approché d’intégrales 1. Programme la méthode des trapèzes ou des rectangles. 1 2. Calculer des valeurs approchées des nombres suivants en utilisant uniquement les opérations élémentaires +, ×, / (i.e. sans charger la bibliothèque "numpy" ni "math"). (a) ln(2) ; (b) π ; (c) e (on pourra utiliser l’algorithme de dichotomie de la partie précédente). Remarque: Ce n’est pas par cette méthode que numpy calcule les valeurs approchées de ces nombres : vous verrez très prochainement plus efficace. 2