Hello,

Here is an example of the underlying problem

sage: a = -x/(2*x-4)
sage: e = lambda e: taylor(e,x,3,4)
sage: e(a)
-3/2 + x - 3 - (x - 3)^2 + (x - 3)^3 - (x - 3)^4
sage: type(_)
<class 'sage.calculus.calculus.SymbolicArithmetic'>
sage: b = e(a)._maxima_(); b
x-(x-3)^4+(x-3)^3-(x-3)^2-9/2

What happens is that is able to construct a SymbolicArithmetic object
that has things like they should be.  When it then reconstructs a
maxima object from that, maxima performs the simplification.

See ticket #2025

--Mike

On Feb 2, 2008 2:00 PM, pgdoyle <[EMAIL PROTECTED]> wrote:
>
>
>
> On Feb 1, 8:59 am, "William Stein" <[EMAIL PROTECTED]> wrote:
>
> > On Jan 31, 2008 7:59 AM, pgdoyle <[EMAIL PROTECTED]> wrote:
> >
> >
> >
> >
> >
> > > On Jan 31, 12:29 am, "William Stein" <[EMAIL PROTECTED]> wrote:
> >
> > > > On Jan 30, 2008 3:48 PM, pgdoyle <[EMAIL PROTECTED]> wrote:
> >
> > > > > I would like to take the Taylor series of a matrix.  But I find I
> > > > > can't even put a Taylor polynomial into a matrix without its being
> > > > > simplified.
> >
> > > > > sage: f=-x/(2*x-4); f
> > > > > -x/(2*x - 4)
> > > > > sage: g=taylor(f,x,1,1); g
> > > > > 1/2 + x - 1
> > > > > sage: matrix(1,[g])
> > > > > [x - 1/2]
> > > > > sage: m=matrix(1,[f]); m
> > > > > [-x/(2*x - 4)]
> > > > > sage: m.apply_map(lambda e: taylor(e,x,1,1))
> > > > > [x - 1/2]
> >
> > > > > Any suggestions?
> >
> > > > You're already doing it exactly correctly.  Try a higher degree
> > > > approximation to avoid confusion:
> >
> > > > sage: m = matrix(1,[-x/(2*x-4)])
> > > > sage: m.apply_map(lambda e: taylor(e,x,1,4))
> > > > [x + (x - 1)^4 + (x - 1)^3 + (x - 1)^2 - 1/2]
> >
> > > William:
> >
> > > Sorry - I didn't make the issue clear enough.  When I ask for the
> > > Taylor polynomial at x=1, I want a polynomial in x-1.  And that's what
> > > I get, except that when I put this polynomial into a matrix, 1/2 + x -
> > > 1 gets simplified to x-1/2.  Your example shows this behavior very
> > > clearly.
> >
> > That's weird.  Most of the polynomial is not simplified except the -1/2 is
> > moved to the end.  Note that the rest of the terms stay put.  I wonder
> > why Maxima does that.  (No clue.)  Note that it isn't a complete loss; all
> > the other terms remain exactly as you wanted.
> >
>
> It's not just that the constant term gets moved:  The 1/2 gets
> combined with the -1 in the linear term x-1.
>
> Also, I don't see how this could be the fault of Maxima:
>
> sage: %maxima
> sage: f:taylor(-x/(2*x-4),x,1,5)
> sage: m:[f]
> sage: m*2
> 1/2+(x-1)+(x-1)^2+(x-1)^3+(x-1)^4+(x-1)^5
> [1/2+(x-1)+(x-1)^2+(x-1)^3+(x-1)^4+(x-1)^5]
> [1+2*(x-1)+2*(x-1)^2+2*(x-1)^3+2*(x-1)^4+2*(x-1)^5]
>
> Note how Maxima has the terms in the expected order for a power
> series, and preserves this order, without doing any simplification,
> when putting it the expression into a matrix.
>
> Cheers,
>
> Peter
>
> > sage: m = matrix(1,[-x/(2*x-4)])
> > sage: m.apply_map(lambda e: taylor(e,x,0,4))
> > [x^4/32 + x^3/16 + x^2/8 + x/4]
> > sage: m.apply_map(lambda e: taylor(e,x,0,4))
> > [x^4/32 + x^3/16 + x^2/8 + x/4]
> > sage: m.apply_map(lambda e: taylor(e,x,1,4))
> > [x + (x - 1)^4 + (x - 1)^3 + (x - 1)^2 - 1/2]
> > sage: m.apply_map(lambda e: taylor(e,x,2,4))
> > [-1/(x - 2) - 1/2]
> > sage: m.apply_map(lambda e: taylor(e,x,3,4))
> > [x - (x - 3)^4 + (x - 3)^3 - (x - 3)^2 - 9/2]
> > sage: m[0,0].taylor(x,3,4)
> > -3/2 + x - 3 - (x - 3)^2 + (x - 3)^3 - (x - 3)^4
> >
> > I'm sure this can be fixed, so I've made a bug report:
> >
> > http://trac.sagemath.org/sage_trac/ticket/2025
> >
> >  -- William
> >
>
>
> >
>

--~--~---------~--~----~------------~-------~--~----~
To post to this group, send email to sage-support@googlegroups.com
To unsubscribe from this group, send email to [EMAIL PROTECTED]
For more options, visit this group at 
http://groups.google.com/group/sage-support
URLs: http://www.sagemath.org
-~----------~----~----~----~------~----~------~--~---

Reply via email to