Page 2 sur 2

Publié : sam. oct. 04, 2008 5:47 pm
par parisse
frederic han a écrit :OK, pour le tableau, si mon mode par defaut (sauvegarde puis xcas relance) est xcas alors le tableau est bon.
salut!
j'ai réussi à corriger ce pb (mais il faut sauvegarder la session avec une version a jour de xcas pour qu'elle ouvre automatiquement les tableaux correctement en mode xcas)
Pour F9, je remarque que le via le menu deroulant ca marche, c'est juste F9, et si je supprime le tableau, alors F9 marche, j'ai l'impression que F9 n'evalue que le tableau.
bien vu, c'était le tableur qui prenait la touche F9 au lieu de la session. J'ai changé en F8 pour le tableur et ça a l'air de marcher.

bon courage

Fred[/quote]

Publié : mer. oct. 08, 2008 9:10 am
par frederic han
OK,
NB: un copain m'a fait remarquer que si la langue etait anglais alors il ne trouvait pas les exemples. (le chemin Example n'existe pas)

Fred

Publié : mer. oct. 08, 2008 12:15 pm
par parisse
En effet, je remets Exemples en attendant que les commentaires des exemples soient traduits.
Voila, sinon je viens de programmer une petite acceleration du calcul du polynome caracteristique d'une matrice a coeffs entiers, en utilisant une methode modulaire et le polynome minimal relatif a un vecteur aleatoire ou a defaut la forme de Hessenberg pour le polynome caracteristique dans Z/pZ. C'est dans xcas_root.tgz, et ca va plus vite que pari par exemple pour une matrice 100x100 ranm(100,100).

Publié : mer. oct. 08, 2008 9:18 pm
par frederic han
Je n'ai fait que quelques petits tests, je n'ai pas eu de Pb, et ca marche bien.

Publié : mer. oct. 08, 2008 10:12 pm
par frederic han
Rien a voir, mais j'ai un resultat bizarre:

b:=(factor(x^2+(-1+(I)*sqrt(3))/2,exp(2*I*Pi/9)));

me donne une constante.

Publié : jeu. oct. 09, 2008 11:52 am
par parisse
Il m'a fait transpirer ce bug-la! Ca y est, je l'ai corrige, l'output n'est pas parfait mais au moins correct. C'est aussi assez lent.
Du coup j'ai fait des modifs dans la gestion des extensions algebriques, j'espere que ca n'aura pas de repercussions ailleurs...

Publié : ven. oct. 10, 2008 10:28 am
par frederic han
OK, ca a l'air de marcher.

En revanche j'avais note ca aussi: sur la version que j'ai compilee pour FreeBSD:

P:=expand((1+x+x^2+x^3)*(x+1)^2);
cFactor(approx(P))
(eventuellement plusieurs fois fini par me donner:
proot error [1.0,3.0,3.0,1.0] Error: Bad argument value

(Je n'arrive pas a le reproduire avec ta version linux, j'ai peut etre une mauvaise librairie?)
mais sous linux et freeBSD:
P:=expand((1+x+x^2)*(x+1)^2)
cFactor(approx(P))
fini par donner:
(x+0.5+0.8660254038*I)*(x+0.5-0.8660254038*I)*(x+undef)

Publié : ven. oct. 10, 2008 10:48 am
par parisse
il va falloir que je retravaille un peu la gestion des poly approches ayant des racines multiples. Pas evident a faire, car le pgcd ne va pas m'aider a detecter ces multiplicites et si elles ne sont pas detectees la methode de Newton peut planter. As-tu une suggestion?

Publié : lun. oct. 13, 2008 10:03 am
par frederic han
Ha oui, mais pour gcd je n'arrive pas a travailler avec un digits precis, ie >=15.

1) Digits:=50;
P:=x+1;
approx(P); n'a pas change.
Mais
1/3.0;
puis approx(P) fait basculer la precision.

2)
P:=x^2+1.0*x;
Q:=diff(P,x)
gcd(P,Q) donne
has_denominator Error: Bad Argument Type

Publié : mer. oct. 15, 2008 9:09 am
par parisse
je viens de corriger, par contre chez moi gcd(P,Q) renvoie 1 sans faire d'erreurs ...
Je vais mettre les binaires a jour en commencant par xcas_root

Publié : mer. oct. 15, 2008 10:22 am
par frederic han
oui, pour avoir l'erreur il faut que le 2x de Q soit en flottant, et pas juste son terme constant.

donc plutot Q:=approx(diff(P,x));
gcd(P,Q)
has_denominator Error: Bad Argument Type

J'edit ce post, en fait avec la nouvelle version (15/10) ca n'a plus l'air de le faire.

Publié : jeu. oct. 16, 2008 1:50 pm
par frederic han
mini Pb:
convert(0,base,2)

me donne une liste vide alors qu'on attend plutot 0?

Publié : jeu. oct. 16, 2008 4:31 pm
par parisse
perso, je prefere une liste vide, car comme ca si l'ecriture est non vide, elle contient un bit significatif a droite qui vaut 1. L'essentiel c'est que la conversion inverse redonne bien 0.

Publié : jeu. oct. 16, 2008 6:43 pm
par frederic han
A ok, c'etait parce que je multiplais ca par une matrice, et que du coup ca ne donnait pas la matrice nulle, mais c'est pas grave, je completerai par des 0
merci

Fred