je n'ai pas de undef avec la derniere version de giac, res_erreur.txt est vide, et voici le resultat affiche
Code : Tout sélectionner
Avant normalisation :
P(0,0) : 1
P(0,1) : x2
P(0,2) : 3/2*x2*x2-1/2
P(0,3) : 5/3*x2*(3/2*x2*x2-1/2)-2/3*x2
P(0,4) : 7/4*x2*(5/3*x2*(3/2*x2*x2-1/2)-2/3*x2)-3/4*(3/2*x2*x2-1/2)
P(0,5) : 9/5*x2*(7/4*x2*(5/3*x2*(3/2*x2*x2-1/2)-2/3*x2)-3/4*(3/2*x2*x2-1/2))-4/5*(5/3*x2*(3/2*x2*x2-1/2)-2/3*x2)
P(1,0) : x1
P(1,1) : x2*x1
P(1,2) : 3/2*x2*x2*x1-1/2*x1
P(1,3) : 5/3*x2*(3/2*x2*x2*x1-1/2*x1)-2/3*x2*x1
P(1,4) : 7/4*x2*(5/3*x2*(3/2*x2*x2*x1-1/2*x1)-2/3*x2*x1)-3/4*(3/2*x2*x2*x1-1/2*x1)
P(2,0) : 3/2*x1*x1-1/2
P(2,1) : x2*(3/2*x1*x1-1/2)
P(2,2) : 3/2*x2*x2*(3/2*x1*x1-1/2)-1/2*(3/2*x1*x1-1/2)
P(2,3) : 5/3*x2*(3/2*x2*x2*(3/2*x1*x1-1/2)-1/2*(3/2*x1*x1-1/2))-2/3*x2*(3/2*x1*x1-1/2)
P(3,0) : 5/3*x1*(3/2*x1*x1-1/2)-2/3*x1
P(3,1) : x2*(5/3*x1*(3/2*x1*x1-1/2)-2/3*x1)
P(3,2) : 3/2*x2*x2*(5/3*x1*(3/2*x1*x1-1/2)-2/3*x1)-1/2*(5/3*x1*(3/2*x1*x1-1/2)-2/3*x1)
P(4,0) : 7/4*x1*(5/3*x1*(3/2*x1*x1-1/2)-2/3*x1)-3/4*(3/2*x1*x1-1/2)
P(4,1) : x2*(7/4*x1*(5/3*x1*(3/2*x1*x1-1/2)-2/3*x1)-3/4*(3/2*x1*x1-1/2))
P(5,0) : 9/5*x1*(7/4*x1*(5/3*x1*(3/2*x1*x1-1/2)-2/3*x1)-3/4*(3/2*x1*x1-1/2))-4/5*(5/3*x1*(3/2*x1*x1-1/2)-2/3*x1)
Aprs normalisation :
P(0,0) : 1/2
P(0,1) : x2/sqrt(4/3)
P(0,2) : (3/2*x2*x2-1/2)/sqrt(4/5)
P(0,3) : (5/3*x2*(3/2*x2*x2-1/2)-2/3*x2)/sqrt(4/7)
P(0,4) : (7/4*x2*(5/3*x2*(3/2*x2*x2-1/2)-2/3*x2)-3/4*(3/2*x2*x2-1/2))/sqrt(4/9)
P(0,5) : (9/5*x2*(7/4*x2*(5/3*x2*(3/2*x2*x2-1/2)-2/3*x2)-3/4*(3/2*x2*x2-1/2))-4/5*(5/3*x2*(3/2*x2*x2-1/2)-2/3*x2))/sqrt(4/11)
P(1,0) : x1/sqrt(4/3)
P(1,1) : x2*x1/sqrt(4/9)
P(1,2) : (3/2*x2*x2*x1-1/2*x1)/sqrt(4/15)
P(1,3) : (5/3*x2*(3/2*x2*x2*x1-1/2*x1)-2/3*x2*x1)/sqrt(4/21)
P(1,4) : (7/4*x2*(5/3*x2*(3/2*x2*x2*x1-1/2*x1)-2/3*x2*x1)-3/4*(3/2*x2*x2*x1-1/2*x1))/sqrt(4/27)
P(2,0) : (3/2*x1*x1-1/2)/sqrt(4/5)
P(2,1) : x2*(3/2*x1*x1-1/2)/sqrt(4/15)
P(2,2) : (3/2*x2*x2*(3/2*x1*x1-1/2)-1/2*(3/2*x1*x1-1/2))/sqrt(4/25)
P(2,3) : (5/3*x2*(3/2*x2*x2*(3/2*x1*x1-1/2)-1/2*(3/2*x1*x1-1/2))-2/3*x2*(3/2*x1*x1-1/2))/sqrt(4/35)
P(3,0) : (5/3*x1*(3/2*x1*x1-1/2)-2/3*x1)/sqrt(4/7)
P(3,1) : x2*(5/3*x1*(3/2*x1*x1-1/2)-2/3*x1)/sqrt(4/21)
P(3,2) : (3/2*x2*x2*(5/3*x1*(3/2*x1*x1-1/2)-2/3*x1)-1/2*(5/3*x1*(3/2*x1*x1-1/2)-2/3*x1))/sqrt(4/35)
P(4,0) : (7/4*x1*(5/3*x1*(3/2*x1*x1-1/2)-2/3*x1)-3/4*(3/2*x1*x1-1/2))/sqrt(4/9)
P(4,1) : x2*(7/4*x1*(5/3*x1*(3/2*x1*x1-1/2)-2/3*x1)-3/4*(3/2*x1*x1-1/2))/sqrt(4/27)
P(5,0) : (9/5*x1*(7/4*x1*(5/3*x1*(3/2*x1*x1-1/2)-2/3*x1)-3/4*(3/2*x1*x1-1/2))-4/5*(5/3*x1*(3/2*x1*x1-1/2)-2/3*x1))/sqrt(4/11)
< P0,0 | P0,0 > = 1
< P0,0 | P0,1 > = 0
< P0,0 | P0,2 > = 0
< P0,0 | P0,3 > = 0
< P0,0 | P0,4 > = 0
< P0,0 | P0,5 > = 0
< P0,0 | P1,0 > = 0
< P0,0 | P1,1 > = 0
< P0,0 | P1,2 > = 0
< P0,0 | P1,3 > = 0
< P0,0 | P1,4 > = 0
< P0,0 | P2,0 > = 0
< P0,0 | P2,1 > = 0
< P0,0 | P2,2 > = 0
< P0,0 | P2,3 > = 0
< P0,0 | P3,0 > = 0
< P0,0 | P3,1 > = 0
< P0,0 | P3,2 > = 0
< P0,0 | P4,0 > = 0
< P0,0 | P4,1 > = 0
< P0,0 | P5,0 > = 0
< P0,1 | P0,1 > = 1
< P0,1 | P0,2 > = 0
< P0,1 | P0,3 > = 0
< P0,1 | P0,4 > = 0
< P0,1 | P0,5 > = 0
< P0,1 | P1,1 > = 0
< P0,1 | P1,2 > = 0
< P0,1 | P1,3 > = 0
< P0,1 | P1,4 > = 0
< P0,1 | P2,1 > = 0
< P0,1 | P2,2 > = 0
< P0,1 | P2,3 > = 0
< P0,1 | P3,1 > = 0
< P0,1 | P3,2 > = 0
< P0,1 | P4,1 > = 0
< P0,2 | P0,2 > = 1
< P0,2 | P0,3 > = 0
< P0,2 | P0,4 > = 0
< P0,2 | P0,5 > = 0
< P0,2 | P1,2 > = 0
< P0,2 | P1,3 > = 0
< P0,2 | P1,4 > = 0
< P0,2 | P2,2 > = 0
< P0,2 | P2,3 > = 0
< P0,2 | P3,2 > = 0
< P0,3 | P0,3 > = 1
< P0,3 | P0,4 > = 0
< P0,3 | P0,5 > = 0
< P0,3 | P1,3 > = 0
< P0,3 | P1,4 > = 0
< P0,3 | P2,3 > = 0
< P0,4 | P0,4 > = 1
< P0,4 | P0,5 > = 0
< P0,4 | P1,4 > = 0
< P0,5 | P0,5 > = 1
< P1,0 | P1,0 > = 1
< P1,0 | P1,1 > = 0
< P1,0 | P1,2 > = 0
< P1,0 | P1,3 > = 0
< P1,0 | P1,4 > = 0
< P1,0 | P2,0 > = 0
< P1,0 | P2,1 > = 0
< P1,0 | P2,2 > = 0
< P1,0 | P2,3 > = 0
< P1,0 | P3,0 > = 0
< P1,0 | P3,1 > = 0
< P1,0 | P3,2 > = 0
< P1,0 | P4,0 > = 0
< P1,0 | P4,1 > = 0
< P1,0 | P5,0 > = 0
< P1,1 | P1,1 > = 1
< P1,1 | P1,2 > = 0
< P1,1 | P1,3 > = 0
< P1,1 | P1,4 > = 0
< P1,1 | P2,1 > = 0
< P1,1 | P2,2 > = 0
< P1,1 | P2,3 > = 0
< P1,1 | P3,1 > = 0
< P1,1 | P3,2 > = 0
< P1,1 | P4,1 > = 0
< P1,2 | P1,2 > = 1
< P1,2 | P1,3 > = 0
< P1,2 | P1,4 > = 0
< P1,2 | P2,2 > = 0
< P1,2 | P2,3 > = 0
< P1,2 | P3,2 > = 0
< P1,3 | P1,3 > = 1
< P1,3 | P1,4 > = 0
< P1,3 | P2,3 > = 0
< P1,4 | P1,4 > = 1
< P2,0 | P2,0 > = 1
< P2,0 | P2,1 > = 0
< P2,0 | P2,2 > = 0
< P2,0 | P2,3 > = 0
< P2,0 | P3,0 > = 0
< P2,0 | P3,1 > = 0
< P2,0 | P3,2 > = 0
< P2,0 | P4,0 > = 0
< P2,0 | P4,1 > = 0
< P2,0 | P5,0 > = 0
< P2,1 | P2,1 > = 1
< P2,1 | P2,2 > = 0
< P2,1 | P2,3 > = 0
< P2,1 | P3,1 > = 0
< P2,1 | P3,2 > = 0
< P2,1 | P4,1 > = 0
< P2,2 | P2,2 > = 1
< P2,2 | P2,3 > = 0
< P2,2 | P3,2 > = 0
< P2,3 | P2,3 > = 1
< P3,0 | P3,0 > = 1
< P3,0 | P3,1 > = 0
< P3,0 | P3,2 > = 0
< P3,0 | P4,0 > = 0
< P3,0 | P4,1 > = 0
< P3,0 | P5,0 > = 0
< P3,1 | P3,1 > = 1
< P3,1 | P3,2 > = 0
< P3,1 | P4,1 > = 0
< P3,2 | P3,2 > = 1
< P4,0 | P4,0 > = 1
< P4,0 | P4,1 > = 0
< P4,0 | P5,0 > = 0
< P4,1 | P4,1 > = 1
< P5,0 | P5,0 > = 1
La base 2D de degr 5 est orthonormale
Donc je vous conseille de mettre a jour avec la derniere version de giac-0.6.2 et de recompiler pour voir si ca marche.
Pour les rootof, c'est normal car giac essaie de tout ecrire avec une unique extension algebrique, ce que vous ne souhaitez probablement pas.
Sinon, a propos des structures de donnees, si vous pensez travailler avec des n grands, vous avez peut-etre interet pour des raisons d'efficacite a utiliser les polynomes de giac, soit les polynomes listes a 1 variable dont les coefficients peuvent etre eux-memes des polynomes listes, soit directement les polynomes a plusieurs variables (mais ils sont d'usage moins evident). Les polynomes listes sont des vecteur (giac::vector<gen>=giac::vecteur) dont les coeffs sont donnes par ordre decroissant. Il existe pas mal de fonctions pour les manipuler dans modpoly.h, par exemple +, *, etc. ou operator_plus, operator_times (utiliser 0 comme pointeur d'environnement pour ne pas faire d'arithmetique modulaire), ou horner pour evaluer en un gen, integrate, derivative, etc. La conversion avec la forme symbolique se fait avec _e2r et _r2e.