Bonjour,
J'essaie de mettre en oeuvre la fonction gbasis.
J'utilise l'exemple suivant :
gbasis([X1^2-I1,X1*X5-I2,X1*X6-I3,X2-I4,X3-I5,X4-I6,X5^2-I7,X5*X6-I8,X6^2-I9,X7-I10,X8-I11,X9-I12],[X1,X2,X3,X4,X5,X6,X7,X8,X9,I1,I2,I3,I4,I5,I6,I7,I8,I9,I10,I11,I12])
C'est pour moi un "cas d'école" en ce sens qu'il a été essayé par un confrère sous MAPLE, et que je l'ai aussi vérifié avec le concurrent maxima. Mapple renvoie une réponse en un temps que je ne connais pas, et maxima renvoie une réponse en quelques secondes.
Xcas semble tourner indéfiniment sans donner de réponse. J'ai fait quelques essais en réduisant le nombre de polynomes : les huits premiers fournissent très rapidement une réponse, et le blocage apparent se produit avec l'introduction du neuvième (celui qui contient I9)..
Je sais que la recherche des bases de Grobner use d'un algorithme à complexité effroyable, mais je me demande quand même s'il n'y a pas un bug.
D'où ma question : y a t'il un moyen de tracer le fonctionnement de gbasis ?
Incidemment, quel algorithme est mis en oeuvre ?
Cordialement
Dominique MICOLLET
Peut etre un bug dans gbasis ??
Modérateur : xcasadmin
-
- Messages : 52
- Inscription : jeu. janv. 11, 2007 10:39 am
- Localisation : Université de Bourgogne - France
Peut etre un bug dans gbasis ??
Cordialement
Dominique MICOLLET
Dominique MICOLLET
bonjour,
Il y avait en effet un bug dans le calcul de bases de Groebner, que j'ai corrige ce mois-ci. J'ai de plus ajoute un lien vers la librairie CoCoA, qui devrait donner des temps de calcul bien meilleurs que l'algorithme de Buchberger qui est pour l'instant le seul que j'ai pu programmer moi-meme. Je n'ai pas encore fait beaucoup de tests, j'espere que ca fonctionne correctement.
En tout cas sur votre exemple, j'obtiens en 1/10 eme de seconde sur un Celeron 750 Mhz avec la derniere version de xcas linux
[X9-I12,X8-I11,X7-I10,X4-I6,X3-I5,X2-I4,X6^2-I9,
X5*X6-I8,X5^2-I7,X1*X6-I3,X1*X5-I2,X1^2-I1,
-X5*I9+X6*I8,-X5*I8+X6*I7,-X1*I9+X6*I3,
-X1*I8+X6*I2,-X5*I3+X6*I2,-X1*I7+X5*I2,
-X1*I3+X6*I1,-X1*I2+X5*I1,I7*I9-I8^2,
I2*I9-I3*I8,I2*I8-I3*I7,I1*I9-I3^2,I1*I8-I2*I3,
I1*I7-I2^2]
Sauf erreur toutes les versions binaires de xcas de mon site (sauf les versions PDA) contiennent le lien vers CoCoA, a partir du source de giac, il faut d'abord compiler et installer CoCoA, ce qui necessite gcc version >= 3.4.
Pour tracer gbasis, il faut utiliser gdb dans le source (qui est dans solve.cc)
Il y avait en effet un bug dans le calcul de bases de Groebner, que j'ai corrige ce mois-ci. J'ai de plus ajoute un lien vers la librairie CoCoA, qui devrait donner des temps de calcul bien meilleurs que l'algorithme de Buchberger qui est pour l'instant le seul que j'ai pu programmer moi-meme. Je n'ai pas encore fait beaucoup de tests, j'espere que ca fonctionne correctement.
En tout cas sur votre exemple, j'obtiens en 1/10 eme de seconde sur un Celeron 750 Mhz avec la derniere version de xcas linux
[X9-I12,X8-I11,X7-I10,X4-I6,X3-I5,X2-I4,X6^2-I9,
X5*X6-I8,X5^2-I7,X1*X6-I3,X1*X5-I2,X1^2-I1,
-X5*I9+X6*I8,-X5*I8+X6*I7,-X1*I9+X6*I3,
-X1*I8+X6*I2,-X5*I3+X6*I2,-X1*I7+X5*I2,
-X1*I3+X6*I1,-X1*I2+X5*I1,I7*I9-I8^2,
I2*I9-I3*I8,I2*I8-I3*I7,I1*I9-I3^2,I1*I8-I2*I3,
I1*I7-I2^2]
Sauf erreur toutes les versions binaires de xcas de mon site (sauf les versions PDA) contiennent le lien vers CoCoA, a partir du source de giac, il faut d'abord compiler et installer CoCoA, ce qui necessite gcc version >= 3.4.
Pour tracer gbasis, il faut utiliser gdb dans le source (qui est dans solve.cc)
je ne sais pas si c'est en rapport, mais j'ai suivi les instructions du site pour une installation simple (que les collègues et les élèves pourront facilement suivre)
En faisant quelques tests, j'ai tapé
solve([a+c=1,c=sqrt(3)*d], [a,c])
sous Debian, j'obtiens
Invalid giac gen -> CoCoA ZZ conversion%%{[-1,0]:[1,0,-3]%%} Error: Bad Argument Value
sous Windows, l'application se ferme sans avertissement !
le même exemple en ligne ne pose pas de problème
et si on remplace la seconde équation par c^2=3*d^2, aucun problème
En faisant quelques tests, j'ai tapé
solve([a+c=1,c=sqrt(3)*d], [a,c])
sous Debian, j'obtiens
Invalid giac gen -> CoCoA ZZ conversion%%{[-1,0]:[1,0,-3]%%} Error: Bad Argument Value
sous Windows, l'application se ferme sans avertissement !
le même exemple en ligne ne pose pas de problème
et si on remplace la seconde équation par c^2=3*d^2, aucun problème
linsolve ? j'essaierai
mais je suis surtout en train de faire du débroussaillage pour les TP de Maths qui débutent pour nous l'an prochain.
Une majorité de collègues ne se sentent pas à l'aise avec les outils informatiques, alors, il leur faut des outils qui rassurent...
j'ai réussi à faire passer OpenOffice (opencalc surtout), je vais essayer de faire passer XCAS
mais je suis surtout en train de faire du débroussaillage pour les TP de Maths qui débutent pour nous l'an prochain.
Une majorité de collègues ne se sentent pas à l'aise avec les outils informatiques, alors, il leur faut des outils qui rassurent...
j'ai réussi à faire passer OpenOffice (opencalc surtout), je vais essayer de faire passer XCAS
linsolve est plutot specialise pour les systemes lineaires, alors que solve sert aux equations et aux systemes polynomiaux. Mais solve fonctionne aussi pour les systemes lineaires, il est juste moins efficace. J'ai mis a jour la version linux avec la correction du bug que vous m'avez signale, la version windows va suivre avant vendredi.
Si je comprends bien, vous souhaitez utiliser ca en vue des TP de TS?
Si je comprends bien, vous souhaitez utiliser ca en vue des TP de TS?