Calcul formel : Mode d'emploi - Exemples en Maple

Claude Gomez, Bruno Salvy, Paul Zimmermann

Masson, 1995

Chapitre VI, section 2.3, exercice 4, page 167.

Philippe.Dumas@inria.fr
http://algo.inria.fr/dumas/Maple/

Page du Projet Algorithmes | Page de Philippe Dumas | Page Maple de Philippe Dumas

Retour en page principale
Table des matières
Index
Maple V.3 worksheet
Maple V.4 worksheet
Maple V.5 worksheet


Nous employons le package Groebner de la version V.5, qui est plus performant que le package grobner de la version V.3. Nous définissons d'abord le système.

> sys:={x^2+y^2+z^2-1,x^2*y^2+y^2*z^2+z^2*x^2-2*x*y*z};

[Maple Math]

Nous appliquons ensuite Groebner[gbasis]. Cependant nous n'employant pas l'ordre plex, comme nous l'aurions fait en V.3, faute de mieux. En effet notre but est simplement d'éliminer une des indéterminées. Comme expliqué dans la page d'aide ?Groebner,termorder, nous utilisons lexdeg. La raison est la suivante. Avec plex on obtient un système triangulaire. Avec lexdeg le système obtenu se décompose en deux parties ; l'une emploie toutes les indéterminées ; l'autre n'emploie que les indéterminées que l'on n'a pas demandé d'éliminer. Du coup la complexité du calcul est moindre avec lexdeg. Il faut bien reconnaître que dans l'exemple présent la nuance est subtile, mais autant prendre de bonnes habitudes. De plus on répond ainsi à l'objection de la page 162 sur l'emploi de l'ordre lexicographique.

> for i in [lexdeg([x],[y,z]),lexdeg([y],[x,z]),
lexdeg([z],[x,y])] do
gb[i]:=Groebner[gbasis](sys,i)
od;

[Maple Math]
[Maple Math]
[Maple Math]
[Maple Math]
[Maple Math]
[Maple Math]

[Maple Math]
[Maple Math]
[Maple Math]
[Maple Math]
[Maple Math]
[Maple Math]

[Maple Math]
[Maple Math]
[Maple Math]
[Maple Math]
[Maple Math]
[Maple Math]

L'exemple est passablement truqué comme le montre le calcul suivant.

> for i in [lexdeg([x],[y,z]),lexdeg([y],[x,z]),
lexdeg([z],[x,y])] do
equ[op(2,i)]:=factor(gb[i][1])
od;

[Maple Math]
[Maple Math]

[Maple Math]
[Maple Math]

[Maple Math]
[Maple Math]

Chaque projection est réunion de quatre ellipses, qui se déduisent de l'une d'entre elles par symétrie par rapport aux axes. Traçons l'une d'elles.

> plots[implicitplot](x^2+x+x*y+y+y^2,x=-1..1,y=-1..1,
scaling=constrained);

Retour en page principale