Maîtrise d'Informatique Maîtrise d'ingénierie mathématique | Module de Calcul Formel Année 2001-2002 |
---|
Programmation et calcul polynomial
Remarques
1 Où l'on revient un peu sur l'évaluation
Taper la session maple suivante :
x:=y;
x;
y:=3;
x;
Pour comprendre comment limiter l'évaluation des expressions maple,
consulter l'aide sur quotes et evaln. Rendre
les variables x et y inaffectées.
Regarder l'aide de eval et taper les instructions ci-dessous :
a:=v:
b:=a:
v:=5:
a;b;eval(b,1);eval(b,2);
v:=b+1:
a;b;v;eval(b,1);eval(b,2);
v:='b';
Que devrait donner l'évaluation de a ?
Utiliser la fonction eval avec deux paramètres pour visualiser
le processus d'évaluation.
2 Sous-termes et types
Consulter l'aide sur op, subsop, type,
type[structure] et whattype. Soit le polynôme
P(X)=(X-Y+1)2, quel est le troisième terme de l'expression expansée
Q de P? Remplacer l'expression en y finale par
z+1. Combien Q a-t-il de termes? Quel est le type de
Q, de factor(Q)?
3 Structures de données
3.1 Séquences, listes et ensembles
maple dispose de structures complexes : les séquences, les listes et
les ensembles.
-
Consulter l'aide sur ce sujet ainsi que sur l'opérateur
$. Afficher le cube des entiers entre 10 et 15; afficher
tous les produits de nombres compris entre 2 et 5 pour l'un, 3 et 7
pour l'autre; afficher les pgcd de 12 et tous les nombres compris
entre 1 et 30. Construire la liste et l'ensemble associés.
- Créer la liste [x1,x2,...,x30] de la façon la plus concise
possible.
3.2 Tableaux
Consultez l'aide de array et matrix. Créer un
tableau vide de nom a ayant dix termes numérotés de 1 à
3. Afficher a avec la fonction print. Affecter des
valeurs polynomiales en x à a. En utilisant
map par exemple, créer le tableau b des dérivées en
x des termes de a. Rendre a inaffectée.
4 Structures de contrôle
Lisez l'aide en ligne disponible pour statement for,
if et proc. Consulter ensuite l'aide pour
option et local.
-
Écrire une boucle for pour créer la liste
[x1,x2,...,x30]. Quelle est la valeur de votre variable de
boucle?
- Écrire une procédure qui calcule la suite de
Fibonacci (F0 = 0, F1 = 1, Fn = Fn-1 + Fn-1 pour
n ³ 2). Que pouvez-vous faire pour rendre cette fonction
efficace sans la dérécursiver? Écrivez une version matricielle du
calcul de cette suite. Pensez à utiliser la commande time
pour comparer les temps d'exécution. Chercher le premier nombre
entier k>1 tel que Fk = k2.
- Écrire un crible d'Ératosthène.
5 Calcul polynomial
5.1 Remarque sur les opérateurs syntaxiques sur les polynômes
Attention en maple, le degré degree, la valuation ldegree
(pour least degree), les coefficients coeff et coeffs, de tête lcoeff (pour leading coefficient), de
queue tcoeff (pour trailing coefficient) sont des
informations syntaxiques, comme vous pouvez le constater par :
degree((x-1)*x-x^2,x);
ldegree((x+2)*x^2-2*x^2,x);
degree((exp(a)*exp(-a)-1)*x+2,x);
lcoeff((exp(a)*exp(-a)-1)*x+2,x);
tcoeff(x+(exp(a)*exp(-a)-1),x);
Les deux premiers cas se traitent facilement en appliquant
collect avant d'appliquer la fonction. Les trois derniers
sont plus problématique car il s'agit de deux expressions
transcendantes (exp(a) et exp(-a)) mais
algébriquement dépendantes qui sont simultanément présentes dans la
même expression. combine arrange souvent bien les choses,
mais ce n'est pas une solution miracle.
5.2 Petites manipulations
Choisir deux polynômes, consulter l'aide en ligne sur les polynômes,
essayer les différentes fonctions sur ces polynômes.
5.3 Exercices
-
Calculer le résultant des polynômes :
x4-3x4-2x3+3x2+7x+6
et
x4+x2+1.
- Par quel calcul peut-on déterminer si le polynôme
6x4-23x3+32x2-19x+4
a une racine multiple sur C?
- Soit P(X) un polynôme. Comment peut-on calculer un
polynôme de même degré dont les racines complexes sont les carrés
des racines de P?
Indication : séparer les parties paire et impaire de P.
Ce document a été traduit de LATEX par
HEVEA.