Enoncé 2

publicité
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
Téléchargement