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/
|
|
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};
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;
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;
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);