This is strange:

sage: x, y =var('x y')
sage: foo = 1/2*(x^3*y + 2*x + sqrt(x^6*y^2 + x^6 + 2*x^5 - 7*x^4 +
6*x^3 - 2*(x^6 + x^5 - 2*x^4 + x^3)*y + 2*x^2 - 4*x + 1) - x^3 - x^2 -
1)/(x^3 - x^2)

sage: foo.taylor(x,0,5)
3*(3*y + 4)*x^5 + 3*(y + 2)*x^4 + (y + 3)*x^3 + 2*x^2 + x + 1

Okay, but if I do a full_simplify(), then taylor() is confused:

sage: foo.full_simplify().taylor(x,0,5)
-(10*y + 11)*x^5 - (4*y + 5)*x^4 - 2*(y + 1)*x^3 - (y + 1)*x^2 - x*y -
1/x + 1/x^2 - 1

I'm certain that the function is analytic at zero, and has coefficients
that are polynomials in y with nonnegative coefficients. So the second
one is definitely wrong.

However, when I look at the difference between foo and
foo.full_simplify(), all I see is that the square root gets factored and
split into two: 

sqrt(x^6*y^2 + x^6 + 2*x^5 - 7*x^4 + 6*x^3 - 2*(x^6 + x^5 - 2*x^4 +
x^3)*y + 2*x^2 - 4*x + 1)

becomes, after full_simplify(),

sqrt(x^3*y - x^3 + x^2 - 1)*sqrt(x^3*y - x^3 - 3*x^2 + 4*x - 1)

and indeed, if you factor what's under the first square root, you get
the two factors in the second pair of roots.

What is going on? Is taylor() unreliable? Or is it full_simplify()?

Thanks!

Dan

--
---  Dan Drake
-----  http://mathsci.kaist.ac.kr/~drake
-------

Attachment: signature.asc
Description: Digital signature

Reply via email to