On 8 August 2014 03:21, rjf <fate...@gmail.com> wrote: > There is a different answer from Maxima, at least different from what is > posted. > > algebraic:true; > tellrat(x^3+3*x+1); > resultant(f,g,y) > gives > > 2201*x^2-2042*x-885
This certainly the correct answer, as one can check by going back to first principles: the resultant of 2 quadratics is a homogenous polynomial in the 6 coefficients, actually bihomogeneous of bidegree (2,2), given by a 4x4 determinant. It makes no difference when one reduces modulo the modulus: sage: x = polygen(QQ) sage: a,b,c,d,e,f = [x^4, x^3+1, x-2, x^3+2*x+1, x+1, x^4+x^3+x^2+1] sage: M = Matrix(4,4,[a,0,d,0,b,a,e,d,c,b,f,e,0,c,0,f]); M [ x^4 0 x^3 + 2*x + 1 0] [ x^3 + 1 x^4 x + 1 x^3 + 2*x + 1] [ x - 2 x^3 + 1 x^4 + x^3 + x^2 + 1 x + 1] [ 0 x - 2 0 x^4 + x^3 + x^2 + 1] sage: M.det() % (x^3+3*x+1) 2201*x^2 - 2042*x - 885 John > > Note that Maxima can also compute the resultant wrt x without > renaming variables. > > > > On Thursday, August 7, 2014 10:25:19 AM UTC-7, Bill Hart wrote: >> >> Thanks Peter. That clears it up well. >> >> I actually thought that you could specify which variable Pari/GP took the >> resultant with respect to. But this obviously doesn't get you around the >> variable ordering issue. >> >> I was vaguely aware of that problem, but had no idea I wasn't working >> around it already. >> >> I'm glad to hear this is also fixed in Sage. I tend to use the latest >> stable release of Sage, but not usually the beta, so I missed that this had >> been fixed. >> >> Thanks again for the help. >> >> Bill. >> >> On Thursday, 7 August 2014 17:02:56 UTC+2, Peter Bruin wrote: >>> >>> Hi Bill, >>> >>> This bug was only fixed two weeks ago (Trac tickets #15061 and #16360), >>> so it only works in the most recent beta versions of Sage. >>> >>> The reason why PARI gives the wrong answer has to do with variable >>> ordering; for example, f is translated to >>> >>> f = Mod(-3*y^2*x^2 + (-y^2 - 3*y + 1)*x - 2, x^3 + 3*x + 1) >>> >>> which is not a polynomial at all. If you want to do this computation in >>> PARI, you have to replace x by a variable with lower priority than y: >>> >>> gp > y; z; >>> gp > f = (z^4*y^2 + (z^3 + 1)*y + (z - 2)) * Mod(1, z^3 + 3*z + 1) * >>> Mod(1, 487326487); >>> gp > g = ((z^3 + 2*z + 1)*y^2 + (z + 1)*y + (z^4 + z^3 + z^2 + 1)) * >>> Mod(1, z^3 + 3*z + 1) * Mod(1, 487326487); >>> gp > polresultant(f, g) >>> %4 = Mod(Mod(2201, 487326487)*z^2 + Mod(487324445, 487326487)*z + >>> Mod(487325602, 487326487), z^3 + 3*z + 1) >>> >>> Peter >>> >>> >>> Bill Hart wrote: >>> >>> > I think that is the correct answer. It agrees with one of the answers >>> > Magma gives, and someone else says Mathematica agrees. >>> > My version of Sage is 'Sage Version 6.2, Release Date: 2014-05-06' >>> > Bill. >>> > >>> > On Thursday, 7 August 2014 16:10:52 UTC+2, Frédéric Chapoton wrote: >>> > >>> > Hello, >>> > it works for me on sage 6.3.beta8, giving: >>> > 2201*xbar^2 + 487324445*xbar + 487325602 >>> > which version of sage do you use ? type version() to know that. >>> > By the way, you should rather have asked that question on >>> > sage-support >>> > or on ask.sagemath.org >>> > Le jeudi 7 août 2014 16:03:43 UTC+2, Bill Hart a écrit : >>> > >>> > I'm having difficulties with the polynomial resultant function in >>> > Sage. >>> > I'm trying to find the resultant of two polynomials. >>> > I compute the resultant of the polynomials below to be: >>> > 6768454*x^2+257200062*x+20305258 >>> > Pari/GP says the resultant is 1, which I don't believe, so I thought >>> > I'd try Sage 6.2: >>> > sage: R = Integers(487326487) >>> > sage: S.<x> = PolynomialRing(R) >>> > sage: T = QuotientRing(S, x^3 + 3*x + 1) >>> > sage: U.<y> = PolynomialRing(T) >>> > sage: f = x^4*y^2 + (x^3 + 1)*y + (x - 2) >>> > sage: g = (x^3 + 2*x + 1)*y^2 + (x + 1)*y + (x^4 + x^3 + x^2 + 1) >>> > sage: f.resultant(g) >>> > >>> > --------------------------------------------------------------------------- >>> > PariError Traceback (most recent call >>> > last) >>> > <ipython-input-9-14f40f55d982> in <module>() >>> > ----> 1 f.resultant(g) >>> > >>> > /usr/local/sage/sage-current/local/lib/python2.7/site-packages/sage/structure/element.so >>> > in sage.structure.element.NamedBinopMethod.__call__ >>> > (sage/structure/element.c:25475)() >>> > >>> > /usr/local/sage/sage-current/local/lib/python2.7/site-packages/sage/rings/polynomial/polynomial_element.so >>> > in sage.rings.polynomial.polynomial_element.Polynomial.resultant >>> > (sage/rings/polynomial/polynomial_element.c:33908)() >>> > >>> > /usr/local/sage/sage-current/local/lib/python2.7/site-packages/sage/rings/polynomial/polynomial_element.so >>> > in sage.rings.polynomial.polynomial_element.Polynomial._pari_with_name >>> > (sage/rings/polynomial/polynomial_element.c:33119)() >>> > >>> > /usr/local/sage/sage-current/local/lib/python2.7/site-packages/sage/libs/pari/gen.so >>> > in sage.libs.pari.gen.gen.Polrev (sage/libs/pari/gen.c:12936)() >>> > >>> > /usr/local/sage/sage-current/local/lib/python2.7/site-packages/sage/libs/pari/handle_error.so >>> > in sage.libs.pari.handle_error._pari_handle_exception >>> > (sage/libs/pari/handle_error.c:1178)() >>> > PariError: variable must have higher priority in gtopoly >>> > ------------------- >>> > Magma gives two different answers, depending on whether you coerce the >>> > coefficients of f and g into T or not (I don't see why). Neither agree >>> > with the Pari/GP answer, or the answer I compute myself (which is very >>> > likely wrong). >>> > Coercing the coefficients into T makes no difference to the resulting >>> > error in Sage. >>> > Can someone tell me what I am doing wrong here. I obviously don't know >>> > what I'm doing. I've never really tried to do any genuine computer >>> > algebra before. >>> > Bill. >>> > >>> > -- >>> > You received this message because you are subscribed to the Google >>> > Groups >>> > "sage-devel" group. >>> > To unsubscribe from this group and stop receiving emails from it, send >>> > an >>> > email to sage-devel+...@googlegroups.com. >>> > To post to this group, send email to sage-...@googlegroups.com. >>> > Visit this group at http://groups.google.com/group/sage-devel. >>> > For more options, visit https://groups.google.com/d/optout. >>> > -- > You received this message because you are subscribed to the Google Groups > "sage-devel" group. > To unsubscribe from this group and stop receiving emails from it, send an > email to sage-devel+unsubscr...@googlegroups.com. > To post to this group, send email to sage-devel@googlegroups.com. > Visit this group at http://groups.google.com/group/sage-devel. > For more options, visit https://groups.google.com/d/optout. -- You received this message because you are subscribed to the Google Groups "sage-devel" group. To unsubscribe from this group and stop receiving emails from it, send an email to sage-devel+unsubscr...@googlegroups.com. To post to this group, send email to sage-devel@googlegroups.com. Visit this group at http://groups.google.com/group/sage-devel. For more options, visit https://groups.google.com/d/optout.