Problème de factorisation ?
Modérateur : xcasadmin
Problème de factorisation ?
Bonjour,
Je suis un grand débutant sur XCas. Je vous prie de m'excuser si la réponse à ma question est évidente.
J'ai regardé le forum, mais je n'ai pas trouvé de cas similaire.
Je cherche à factoriser le polynôme complexe suivant :
P(x):=(sqrt(2)-i*sqrt(6))*x^3-(2*sqrt(3)+2*i)*x^2+4*sqrt(2)*i*x+8
La réponse de XCas est la suivante :
http://imageshack.com/a/img661/3029/aV23u1.png
(j'ai également mis les paramètres).
La bonne réponse est (sauf erreur de calcul de ma part) :
(x-sqrt(x)*i)*(x*sqrt(sqrt(2)-sqrt(6)*i)-i*sqrt(4*sqrt(2)*i)*(x*sqrt(sqrt(2)-sqrt(6)*i)+i*sqrt(4*sqrt(2)*i)
Pourriez-vous m'aider à comprendre mon erreur dans XCas ?
Merci d'avance.
Je suis un grand débutant sur XCas. Je vous prie de m'excuser si la réponse à ma question est évidente.
J'ai regardé le forum, mais je n'ai pas trouvé de cas similaire.
Je cherche à factoriser le polynôme complexe suivant :
P(x):=(sqrt(2)-i*sqrt(6))*x^3-(2*sqrt(3)+2*i)*x^2+4*sqrt(2)*i*x+8
La réponse de XCas est la suivante :
http://imageshack.com/a/img661/3029/aV23u1.png
(j'ai également mis les paramètres).
La bonne réponse est (sauf erreur de calcul de ma part) :
(x-sqrt(x)*i)*(x*sqrt(sqrt(2)-sqrt(6)*i)-i*sqrt(4*sqrt(2)*i)*(x*sqrt(sqrt(2)-sqrt(6)*i)+i*sqrt(4*sqrt(2)*i)
Pourriez-vous m'aider à comprendre mon erreur dans XCas ?
Merci d'avance.
Re: Problème de factorisation ?
Petite erreur de solution, désolé :
(x-sqrt(2)*i)*(x*sqrt(sqrt(2)-sqrt(6)*i)-i*sqrt(4*sqrt(2)*i))*(x*sqrt(sqrt(2)-sqrt(6)*i)+i*sqrt(4*sqrt(2)*i))
J'ai essayé de la développer avec XCas et en utilisant la fonction simplifier, j'arrive sur mon polynôme de départ.
J'ai donc bien un problème sur la factorisation
(x-sqrt(2)*i)*(x*sqrt(sqrt(2)-sqrt(6)*i)-i*sqrt(4*sqrt(2)*i))*(x*sqrt(sqrt(2)-sqrt(6)*i)+i*sqrt(4*sqrt(2)*i))
J'ai essayé de la développer avec XCas et en utilisant la fonction simplifier, j'arrive sur mon polynôme de départ.
J'ai donc bien un problème sur la factorisation
-
- Messages : 1137
- Inscription : dim. mai 20, 2007 7:09 am
- Localisation : Paris
- Contact :
Re: Problème de factorisation ?
Bonjour,
Le fait d'exprimer une factorisation en utilisant un rootof (ie dans votre cas un polynome en u ou u est une racine d'un polynome de degre 8) n'est a priori pas une erreur meme s'il existe une reponse par radicaux. Cette ecriture a ses avantages, par exemple pour evaluer un polynome en votre element.
En revanche ce qui me perturbe est (giac 1.2.1-7 ou 1.2.0-19):
approx(normal(P-F)) me semble loin d'etre nul ce qui n'est pas normal.
en revanche:
Le fait d'exprimer une factorisation en utilisant un rootof (ie dans votre cas un polynome en u ou u est une racine d'un polynome de degre 8) n'est a priori pas une erreur meme s'il existe une reponse par radicaux. Cette ecriture a ses avantages, par exemple pour evaluer un polynome en votre element.
En revanche ce qui me perturbe est (giac 1.2.1-7 ou 1.2.0-19):
Code : Tout sélectionner
13>> P:=(sqrt(2)-i*sqrt(6))*x^3-(2*sqrt(3)+2*i)*x^2+4*sqrt(2)*i*x+8
(sqrt(2)-(i)*sqrt(6))*x^3-(2*sqrt(3)+2*i)*x^2+4*sqrt(2)*(i)*x+8
// Time 0
14>> F:=factor(P)
rootof([[61,-66,-1873,1254,20503,-11550,-52251,6138],[1,0,-28,0,262,0,-156,0,1089]])/241842627019800576*(43622407471104*x^3+(-sqrt(2)*(43622407471104*i))*x^2+(-sqrt(3)*43622407471104*(-sqrt(3)*1/11417486601450180459569872896*(3805828867150060153189957632*i)+1))*x+rootof([[59990692608,64928932992,-1842077825280,-1233772670592,20164700134656,11363792711040,-51390924076800,-6031137087360],[1,0,-28,0,262,0,-156,0,1089]]))/(4-4*i)
// Time 0.17
15>> normal(P-F)
rootof([[-4368,1,111216,-19,-933744,175,-1258656,3725139],[1,0,-28,0,262,0,-156,0,1089]])/931392
// Time 0.04
16>> simplify(P-F)
(5544*x^3*rootof([[-26-61*i,-165+66*i,662+1873*i,4521-1254*i,-5558-20503*i,-42735+11550*i,14682+52251*i,22275-6138*i],[1,0,-28,0,262,0,-156,0,1089]])+x^2*rootof([[177408+753984*i,365904-365904*i,-5699232-20379744*i,-6952176+6952176*i,45017280+168271488*i,2561328-2561328*i,59409504+225596448*i,642161520-150386544*i],[1,0,-28,0,262,0,-156,0,1089]])+x*rootof([[-388080-388080*i,-1097712+1097712*i,13427568+13427568*i,36224496-36224496*i,-165710160-165710160*i,-345779280+345779280*i,416565072+416565072*i,178927056-178927056*i],[1,0,-28,0,262,0,-156,0,1089]])+64*rootof([[1386+1386*i,15367968-15367968*i],[1,0,-28,0,262,0,-156,0,1089]]))/245887488
en revanche:
Code : Tout sélectionner
19>> F2:=factor(normal(P))
2*((-i)*sqrt(3)+1)*sqrt(2)*(x+rootof([[-2,-3,35,48,-224,-300,-12,-144],[1,0,-16,0,88,0,192,0,144]])/288)*(x+(-i)*sqrt(2))*(x+rootof([[2,3,-35,-48,224,300,12,144],[1,0,-16,0,88,0,192,0,144]])/288)/2
// Time 0.13
20>> normal(P-F2)
0
Re: Problème de factorisation ?
il y a clairement un probleme, et c'est marrant que faire normal avant factor fasse fonctionner, ca fournit en tout cas un bug fix si je n'ai pas le courage d'aller au fonds du bug (faut dire que ce n'est pas si simple, puisqu'on travaille sur une extension de degre .
-
- Messages : 1137
- Inscription : dim. mai 20, 2007 7:09 am
- Localisation : Paris
- Contact :
Re: Problème de factorisation ?
C'est peut etre un probleme de polynomes unitaires:
donne bien 0.
Code : Tout sélectionner
Q:=(P/(sqrt(2)-i*sqrt(6)));
F2:=factor(Q);
normal(F2-Q)
Re: Problème de factorisation ?
J'ai un correctif, je le mettrai en ligne sans doute lundi. C'etait un nettoyage mal fait dans le calcul d'une extension algebrique commune.
Re: Problème de factorisation ?
Bonsoir,
J'ai essayé de passer avec des radicaux (en cochant Sqrt dans la page de configuration de XCas, mais j'ai toujours une réponse assez loin de ce que je cherchais à obtenir, à savoir :
http://imageshack.com/a/img538/308/xgIbfR.png
au lieu de :
(x-sqrt(2)*i)*(x*sqrt(sqrt(2)-sqrt(6)*i)-i*sqrt(4*sqrt(2)*i))*(x*sqrt(sqrt(2)-sqrt(6)*i)+i*sqrt(4*sqrt(2)*i))
est-ce possible dans XCas ?
Merci d'avance pour votre aide
J'ai essayé de passer avec des radicaux (en cochant Sqrt dans la page de configuration de XCas, mais j'ai toujours une réponse assez loin de ce que je cherchais à obtenir, à savoir :
http://imageshack.com/a/img538/308/xgIbfR.png
au lieu de :
(x-sqrt(2)*i)*(x*sqrt(sqrt(2)-sqrt(6)*i)-i*sqrt(4*sqrt(2)*i))*(x*sqrt(sqrt(2)-sqrt(6)*i)+i*sqrt(4*sqrt(2)*i))
est-ce possible dans XCas ?
Merci d'avance pour votre aide
-
- Messages : 1137
- Inscription : dim. mai 20, 2007 7:09 am
- Localisation : Paris
- Contact :
Re: Problème de factorisation ?
Bonjour, en resume:
Il y a 2 choses distinctes avec votre:
1) le resultat donné par factor(P(x)) ou cfactor(P(x)) est faux avec giac/xcas <= 1.2.1-7.
En revanche:
est correct.
NB: on peut rendre l'affichage d'un roofof plus joli en lui donnant un nom:
2) Les radicaux ne seront pas gardes pour des extensions de degre >2 et tot ou tard des rootof apparaitront puisque pour
xcas un rootof est plus simple qu'un racine de racine:
Il y a 2 choses distinctes avec votre:
Code : Tout sélectionner
P(x):=(sqrt(2)-i*sqrt(6))*x^3-(2*sqrt(3)+2*i)*x^2+4*sqrt(2)*i*x+8
1) le resultat donné par factor(P(x)) ou cfactor(P(x)) est faux avec giac/xcas <= 1.2.1-7.
En revanche:
Code : Tout sélectionner
3>> factor(normal(P(x)))
2*((-i)*sqrt(3)+1)*sqrt(2)*(x+rootof([[-2,-3,35,48,-224,-300,-12,-144],[1,0,-16,0,88,0,192,0,144]])/288)*(x+(-i)*sqrt(2))*(x+rootof([[2,3,-35,-48,224,300,12,144],[1,0,-16,0,88,0,192,0,144]])/288)/2
Code : Tout sélectionner
s1:=-rootof([[-2,-3,35,48,-224,-300,-12,-144],[1,0,-16,0,88,0,192,0,144]])/288;
s2:=i*sqrt(4*sqrt(2)*i)/sqrt(sqrt(2)-sqrt(6)*i);
simplify(s1-s2); // donne bien 0
Code : Tout sélectionner
18>> rootof([1,0,-16,0,88,0,192,0,144]):='u';
u
21>> factor(normal(P(x)));
(7*u^7-118*u^5+676*u^3+1176*u)/144*(x+(-2*u^7-3*u^6+35*u^5+48*u^4-224*u^3-300*u^2-12*u-144)/288)*(x+(u^6-18*u^4+108*u^2+104)/64)*(x+(2*u^7+3*u^6-35*u^5-48*u^4+224*u^3+300*u^2+12*u+144)/288)/2
23>> approx(u,30);
3.14626436994197234232913506571+i
xcas un rootof est plus simple qu'un racine de racine:
Code : Tout sélectionner
17>> simplify(sqrt(sqrt(3))+1/sqrt(2))
rootof([[10,0,-81,0,190,0,-945,0],[1,0,-8,0,18,0,-104,0,1]])/152
Re: Problème de factorisation ?
Apres correction du bug, on obtient bien les 3 facteurs de degre 1, mais ils sont exprimes avec des rootof pour deux d'entre eux. Il serait sans doute possible d'ecrire un peu de code pour detecter que les extensions algebriques de degre 8 peuvent se reecrire avec des i et des racines imbriquees, mais d'une part il faut bien s'arreter quelque part, la limite est 4, et d'autre part ce serait moins efficace pour des calculs ulterieurs.
Re: Problème de factorisation ?
Merci pour toutes ces réponses.
Je suis un peu bloqué avec les rootof, car ce n'est pas très clair pour reconnaître les racines.
J'ai pas mal cherché sur Internet, mais cela reste peu utilisable dans mon contexte.
Serait-il possible dans une version ultérieure de mettre la limite dont vous parlez (4) en paramètre ?
Je suis un peu bloqué avec les rootof, car ce n'est pas très clair pour reconnaître les racines.
J'ai pas mal cherché sur Internet, mais cela reste peu utilisable dans mon contexte.
Serait-il possible dans une version ultérieure de mettre la limite dont vous parlez (4) en paramètre ?
Re: Problème de factorisation ?
Ce n'est pas un simple parametre, il faut un algorithme pour reecrire un rootof, et qui ne marchera que dans quelques cas tres particuliers.