Informatique
Polynômes
I. Algorithme de Horner
Il s'agit de calculer la valeur en un point d'un polynôme en ne faisant que des additions et des multiplications, grâce à l'écriture de +...+ sous la forme :
P = (( ... ( ) ) X + ... + )
Bien sûr,
Maple
sait calculer sur les polynômes, mais on n'utilisera pas cette possibilité dans cet exercice. On représentera un polynôme par la succession de ses coefficients
, ...,
,
si
+ ... +
.
On va écrire une procédure
horner
prenant comme arguments
, ...,
,
et retournant
P
(X). Donc : le nombre d'arguments de
horner
va être variable ; on aura à utiliser
args
et
nargs
(
aide
), et l'en-tête de la procédure sera de la forme
horner:=proc()
. Attention,
va être le
argument ("
args[1]
"), car c'est par lui que le calcul commence.
1. Version itérative . Ecrire la procédure horner en effectuant les additions et les multiplications à l'aide d'une boucle for . On pourra gérer une variable P dans la procédure, qui commencera par valoir 0 puis , puis , puis et ainsi de suite.
> |
2. Version récursive . Pour éviter d'avoir à utiliser une variable, écrire une procédure horner2 sous forme récursive (s'appelant elle-même).
> |
3. Tester les deux procédures ci-dessus en calculant p. ex. le polynôme , ce qui doit répondre à la formule horner(1,2,3) ( resp . horner2(1,2,3) ).
> |
> |
II. Polynômes interpolateurs de Lagrange
Le polynôme interpolateur élémentaire de Lagrange associé aux réels ,..., (deux à deux distincts) est défini pour tout entier k entre 1 et n par :
,
où le produit est étendu aux indices tels que .
1. On ne fixe pas n , mais on va écrire une procédure L prenant un nombre variable d'arguments ( cf. I) dont les n premiers seront ,..., et le dernier, l'entier k . On pourra supposer que k est bien compris entre 1 et n (càd, on n'en programmera pas la vérification, et une erreur se produira si ce n'est pas le cas). Le calcul de pour en ( ,..., ) s'effectuera donc par L(x1,x2,x3,x4,x5,2) et devra retourner :
.
> |
2. Lorsque ,..., sont n réels, on vérifie qu'on obtient un polynôme P tel que ,..., par l'expression :
.
On se propose d'effectuer ce calcul lorsque les sont les valeurs d'une fonction f supposée définie en Maple .
En utilisant une simple instruction de sommation, écrire une procédure P prenant comme arguments (en nombre variable) les réels ,..., et réalisant le calcul souhaité. On réutilisera bien sûr la fonction L du 1 . La fonction f (non précisée) sera une variable globale. Tester.
> |
3. Dans le cas où , , , et , expliciter l'expression de et tracer sur un même schéma et .
> |
> |