SAGE et les polynômes

Bonjour, j'essaye d'utiliser SAGE et je suis très nul. Voici ma question.
J'ai deux polynômes U et V de Q[X] à coefficients inconnus.
Je souhaite former le polynôme R(X,Y)= (U(X)V(Y)-U(Y)V(X))/(X-Y)
Comment faire pour que SAGE comprenne Que R est bien un polynôme de Q[X,Y] ?
pour seulement le polynôme:U(X)V(Y)-U(Y)V(X), tout va bien mais des que je divise par (X-Y), SAGE m’interprète R comme une fraction polynomiale...comme me le dit R.parent().
je n'arrive pas à lui faire simplifier par X-Y.
Savez-vous comment faire et surtout comment interpréter tout cela.
Merci encore.

Réponses

  • Salut,
    sage: Q.<x,y> =QQ[]
    sage: U = x^2+x^3
    sage: V = x+1+x^5
    sage: R = (U*V.subs(x =y,y=y)-U.subs(x=y,y=y)*V)/(x-y)
    sage: R
    -x^4*y^3 - x^3*y^4 - x^4*y^2 - x^3*y^3 - x^2*y^4 + x^2*y + x*y^2 + x^2 + 2*x*y + y^2 + x + y
    sage: R.parent()
    Fraction Field of Multivariate Polynomial Ring in x, y over Rational Field
    sage: R in Q
    True
    sage: R = Q(R)
    sage: R.parent()
    Multivariate Polynomial Ring in x, y over Rational Field
    
  • Merci c'était pourtant simple. Et si les coefficients des polynômes sont des variables symboliques?
    genre U(x)=a+bX+cX²...
  • Dans Sage, tu dois déclarer tes variables.
    Une manière de faire est de déclarer tes variables symboliques a, b, c et de travailler dans l'anneau des polynômes à coeffcients dans "l'anneau symbolique" SR.
    Sinon, tu fabriques le corps des fractions rationnelles en a, b, c et tu travailles dans l'anneau des polynômes à coefficients dans ce corps.

    As tu le Sagebook (téléchargeable) ?
  • oui j ai le Sagebook...
    je vais essayer tout cela, mais c'est l'instruction R = Q(R) qu'il me manquait. Merci.
  • Pour moi, ces questions ne sont pas claires. Par exemple, avec deux variables $q$ et $t$, on peut considérer $\Q[q,q^{-1}][t]$ et $\Q[t][q,q^{-1}]$. Je ne sais pas déclarer ces deux anneaux et passer de l'un à l'autre sans acrobaties improbables [explicitement : déclarer $\Q[q,q^{-1}][t]$ et $\Q[T][Q,Q^{-1}]$ et copier des listes de coefficients].
    Une aide serait bienvenue.
  • je n'y arrive toujours pas, j ai suivi tes conseils et essayé:
    méthode 1
    R.<a,b,c,d>=FractionField(PolynomialRing(QQ,'a,b,c,d'))
    S.<x,y>=PolynomialRing(R,'x,y')
    U=a+b*x
    V=c+d*x
    H=(U*V(subs(x=y)-U(subs(x=y))*V)/(x-y)

    Et H n'est toujours pas un Polynôme

    Méthode 2
    Var('a,b,c,d')
    R.<x>=SR[]
    U=a+b*x
    V=c+d*x
    H=(U(x)*V(y)-U(y)*V(x))/(x-y)
    et ça ne fonctionne pas également.

    Dans les deux cas
    T=R(H) me fait couiner SAGE en disant que cette fonction n'est pas implantée pour les objets manipulés..
    si vous avez encore un peu de temps pour m'aider.
    Merci.
  • Bah oui mais si tu fais $R(H)$ c'est normal $H$ n'est pas dans $R$ !!! Il faut faire $S(H)$ !
  • Problèmes :
    • U(x) ne va pas, il faut mettre U à la place
    • V(subs(x=y)) ou V(y) ne vont pas non plus, il faut mettre V.subs(x=y) à la place
    • conclure par : S(H) et pas R(H)
    sage: R.<a,b,c,d>=FractionField(PolynomialRing(QQ,'a,b,c,d'))
    ....: S.<x,y>=PolynomialRing(R,'x,y')
    ....: U=a+b*x
    ....: V=c+d*x 
    ....: H = (U*V.subs(x=y)-U.subs(x=y)*V)/(x-y)
    ....: H; H.parent()
    ....: 
    b*c - a*d
    Fraction Field of Multivariate Polynomial Ring in x, y over Fraction Field of Multivariate Polynomial Ring in a, b, c, d over Rational Field
    sage: S(H).parent()
    Multivariate Polynomial Ring in x, y over Fraction Field of Multivariate Polynomial Ring in a, b, c, d over Rational Field
    
  • Merci de vos aides...pour
    V(subs(x=y)) à la place de V.subs(x=y) c'est une erreur de copie...
    Je travaille avec SAGE depuis l'environnement clef agreg...et cet ordi n'est pas sur le net...
    Pour R(H) à la place de S(H)... Je n'ai pas d'excuses...je n'ai qu'à bien lire!
    En tout cas encore merci pour vos aides.
  • Encore moi...je pensais avoir compris...
    quand j'utilise le CellSage en ligne tout va bien mais avec mon ordi cela donne76260
  • Mode troll on: ca parait bien complique par rapport a Xcas:
    U:=a+b*x;
    V:=c+d*x;
    normal((U*V(x=y)-U(x=y)*V)/(x-y))
  • @Parisse : Maple non plus ne demande pas de tout typer. C'est souvent plus facile, mais des fois ça met dans une impasse dont ne peut pas sortir.

    @kayakpopot : une façon de faire brutale, pas forcément adaptée à ce que tu as en vue (si tu as quelque chose en vue).76270
  • Merci encore, une question me taraude (ou je passe complètement à côté du sujet) pourquoi n'obtiens-je pas les mêmes réponses suivant la version de SAGE. Sur ma copie d'écran ( SAGE de la clef agreg) le résultat est différent de celui escompté.
    Et quand je tape le même code sur la version Sage en ligne(cellsage) alors là tout va bien et j'obtiens bien la même réponse que celle de Math Coss.
    @Parisse merci pour le travail de Xcas.( En fait je suis plus à l'aise avec Python qu'avec C d'où mon choix... A quand un stage du PAF sur Xcas?)
    @GaBuZoMeu Mon but est, en gros,( c'est ce que l'on demande dans une épreuve de l'option C de l'agreg) de récupérer les coefficients de H et de comparer le déterminant de la matrice qu'ils forment avec le résultant des polynômes U et V. En changeant de version j'y arrive correctement, mais je me m’inquiétè de ne pas y arriver avec l'autre version...Ai-je les yeux en face des trous, il me semble bien taper exactement la même chose!
  • kayakpopot: ca fait presque 1 an que je travaille sur la compatibilite Python de Xcas. La version disponible au concours est encore un peu jeune sur cet aspect pour assurer une utilisation sans risques, a l'agreg 2018 je recommande d'utiliser plutot la syntaxe en francais (fonction ... ffonction, pour ... de ... jusque ... faire ... fpour, si alors sinon fsi). Pour 2019, la syntaxe Python sera suffisamment mure pour etre utilisee sans risque.
    De toutes facons, le probleme n'est pas vraiment entre syntaxe Python/Xcas ou autre, d'autant qu'il y a des assistants pour creer une fonction, un test ou une boucle dans Xcas. Ce qui est plus difficile, c'est de connaitre suffisamment la bibliotheque de fonctions built-in du logiciel et les structures de donnees relativement au programme (par exemple comment creer et manipuler une matrice a coefficients dans un corps fini premier ou non premier) pour illustrer le texte (il me semble reconnaitre un texte recent dans la question initiale).

    GaBuZoMeu: Xcas possede aussi des types de donnees plus types, par exemple polynome dense en 1 variable, polynome creux a plusieurs variables, matrice dense ou creuse, pour ceux qui veulent le maximum d'efficacite (et d'ailleurs Xcas n'a pas a rougir en terme de vitesse vis a vis de Sage pour certains benchmarks, par exemple ceux de Nemo) ou un controle fin des types manipules. Mais pour un utilisateur occasionnel, on peut travailler sans avoir besoin de les utiliser, et du coup c'est plus facile par exemple pour un candidat qui n'est pas inscrit dans une formation avec des enseignants connaissant Sage. Bien sur, si vous avez un exemple precis niveau agreg option C qu'on ne peut pas resoudre en Xcas, je suis preneur.
  • Merci, c'est vraiment une bonne nouvelle d'autant plus que Python est préconisé au lycée.
Connectez-vous ou Inscrivez-vous pour répondre.