Peut etre un bug dans gbasis ??

Bugs

Modérateur : xcasadmin

Dominique MICOLLET
Messages : 50
Inscription : jeu. janv. 11, 2007 10:39 am
Localisation : Université de Bourgogne - France

Peut etre un bug dans gbasis ??

Message par Dominique MICOLLET » ven. juin 29, 2007 2:08 pm

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 :P 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
Cordialement

Dominique MICOLLET

parisse
Messages : 5082
Inscription : mar. déc. 20, 2005 4:02 pm
Contact :

Message par parisse » sam. juin 30, 2007 7:57 am

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)

kotecki
Messages : 3
Inscription : jeu. juin 28, 2007 11:32 am

Message par kotecki » mar. juil. 03, 2007 7:21 am

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

parisse
Messages : 5082
Inscription : mar. déc. 20, 2005 4:02 pm
Contact :

Message par parisse » mar. juil. 03, 2007 7:56 am

oups, en effet la racine carree n'est pas utilisable avec CoCoA, je corrige ca, merci!
En attendant vous pouvez utiliser linsolve sur ce type d'exemple

kotecki
Messages : 3
Inscription : jeu. juin 28, 2007 11:32 am

Message par kotecki » mar. juil. 03, 2007 3:31 pm

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 :wink:

parisse
Messages : 5082
Inscription : mar. déc. 20, 2005 4:02 pm
Contact :

Message par parisse » mar. juil. 03, 2007 3:49 pm

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?

kotecki
Messages : 3
Inscription : jeu. juin 28, 2007 11:32 am

Message par kotecki » jeu. juil. 05, 2007 8:28 am

si je souhaite l'utiliser en TP en S ?
en fait, je regarde les logiciels utilisables dans ce cadre, effectivement.
Mais il est clair qu'il ne faudra pas être trop ambitieux : ça sera plus une initiation, une présentation de quelques possibilités.

Répondre