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.

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.

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

  1. Calculer le résultant des polynômes :
    x4-3x4-2x3+3x2+7x+6
    et
    x4+x2+1.
  2. Par quel calcul peut-on déterminer si le polynôme
    6x4-23x3+32x2-19x+4
    a une racine multiple sur C?
  3. 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.