Deuxième semestre 2009-2010 Université Paris 7 re année Licence 1 CF2 - Calcul Formel [email protected] Partiel - Durée : 1 h Vous devez rendre une copie sur laquelle vous aurez écrit les commandes vous permettant de répondre aux questions qui vous sont posées, ainsi que les éventuels commentaires que vous jugerez bon d'ajouter. Sauf mention contraire, il n'est pas nécessaire d'écrire le résultat rendu par Maple. Une attention particulière sera accordée à la syntaxe des commandes Maple. Les exercices 1, 2 et 3 sont indépendants et d'importance équivalente. L'exercice 4 est facultatif, il n'est pas nécessaire de le traiter pour obtenir la note maximale. Consignes : Maple Exercice 1 : (Echauement) 1. Corriger les erreurs dans les assertions suivantes : [> f(x)=3x+1; (on veut dénir la fonction x 7→ 3x + 1), [> diff(exp, x) [> for k=1..10 print(k+1); end for; 2. Evaluer numériquement, l'expression suivante : 8 arctan( 12 )−4 arctan( 17 ). Qu'en pensezvous ? Donner une commande de simplication permettant de justier votre armation. 3. Donner la commande Maple permettant de tracer (sur un même graphe) le graphe de fn (x) = exp( nx ), pour n de 1 à 10. On adaptera le domaine du graphe pour obtenir quelque chose de lisible. 4. Ecrire une fonction abslist qui, à une liste l de réels, associe l'ensemble dont les éléments sont les valeurs absolues des éléments de la liste l. On n'utilisera aucune boucle for, if ni while. (par exemple, abslist([-1,2,-3,-5])= {1,2,3,5}). Exercice 2 : Pour tout n ≥ 1, on dénit un n X 1 = . Un résultat usuel dit que k2 k=1 2 limn→∞ un existe et vaut π6 . Construire une procédure qui prend en entrée un entier n et qui renvoie la valeur de un si n ≥ 1 et un message d'erreur si n ≤ 0. Construire (à l'aide d'une boucle while) une procédure qui prend en paramètre un réel r et qui renvoie un message d'erreur si r ≤ 0 et renvoie le premier entier n tel que 2 |un − π6 | < r, sinon. Exercice 3 : (Algorithme de Hörner) Soit P = a0 + a1 X + · · · + an X n un polynôme à coecients réels. Dans cet exercice, un tel polynôme sera codé par la liste de ses coecients : [a0 , a1 , . . . , an ]. Par exemple le polynôme X + 2X 2 − 3X 4 sera codé en Maple sous la forme [0, 1, 2, 0, -3]. Pour tout réel x donné, on souhaite calculer P (x) = a0 + a1 x + · · · + an xn , la valeur du polynôme P en x. Le but de l'algorithme de Hörner est de le faire de manière ecace. Il se fonde sur l'égalité suivante : ∀x ∈ R, P (x) = a0 + x (a1 + x (a2 + x (. . . (an−1 + xan ) . . . ))) . 1 Tourner la page SVP A partir de cette égalité, construire un algorithme récursif horner qui prend en entrée un nombre x et un polynôme P , et qui renvoie la valeur P (x) (Indication : on pourra remarquer que P (x) = a0 + x × Q(x), pour un certain polynôme Q, de degré plus petit). Donner une version itérative horner_iter de cet algorithme. Après avoir déni (on donnera la commande utilisée pour cela) P = 1 + 21 X + 14 X 2 + · · · + 2110 X 10 , donner la valeur en x = 3 du polynôme P . Exercice 4 : (Exercice bonus) Rédiger la preuve par récurrence de la correction et de la terminaison de l'algorithme récursif précédent. On prendra soin d'énoncer précisément la preuve récurrente à prouver. 2