[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Axiom-developer] Re: Limits in Axiom
From: |
Ondrej Certik |
Subject: |
[Axiom-developer] Re: Limits in Axiom |
Date: |
Mon, 26 Mar 2007 12:08:47 +0200 |
Ah, but that means formal power series with symbolic coefficients? Or
does one need Laurant or even Puiseux series?
Depending on the limit, sometimes you need to know how to make a
series of an expression like
log(1+1/x)
around x=0+
You can try it in Maple, the trick is to treat any possible log(x)
that arise during the expansion as constants (as they are singular
around x=0+) and then do normal laurent series.
log(1+1/x) is trivial, but there are more complicated examples.
log(x) are later substituted for something normal.
And for computing the coefficients one probably need differentiation of
the (symbolic) expression and evaluation at some point (Taylor series
expansion). Is my understanding correct?
Right, but that's easy. But you need to know how to make a meaningful
series of almost everything. (it's enough what maple or sympy does)
However, I must say that your expression approach is limited in the
sense that it can only deal with commuting objects. Simplifying b*a+a*b
to 2*a*b is not correct if b is the differentiation operator D on x and
a=X is the "multiplication by x"-operator. Then you would have D*X=X*D+1.
Of course. Try in SymPy:
In [2]: x*y+y*x
Out[2]: 2*y*x
In [10]: a = Symbol("a", is_commutative=False)
In [11]: b = Symbol("b", is_commutative=False)
In [12]: a*b+b*a
Out[12]: b*a+a*b
In [13]: (a+b)**2
Out[13]: (b+a)**2
In [14]: ((a+b)**2).expand()
Out[14]: b*a+a**2+a*b+b**2
In [15]: ((x+y)**2).expand()
Out[15]: x**2+y**2+2*y*x
And you can play with Pauli algebra, that I implemented in exactly this way.
Anyway, could you list a few more detailed requirements of the Gruntz
algorithm? What is simple, what do you think is complicated?
I think in Axiom you have pretty much everything prepared already.
Don't worry about the series expansion, you can use your current one,
it will work for most limits (but not the one I was trying to do in my
email for example).
For someone who knows Axiom well, it should take like a week of a
work. In SymPy I was doing it I think like 3 weeks, because I had to
implement many other things and I was spending most of the time in the
series facility.
Ondrej