03.03.2011 02:09, Aaron S. Meurer пишет:

On Mar 2, 2011, at 1:27 PM, Alexey U. Gudchenko wrote:

01.03.2011 00:34, Vinzent Steinberg пишет:
A. My fears that it will be hard to maintain behavior of O((x-x0)**n)
  for pure "asymptotic expansions" expression in general case (without
  knowledge of series structure). In this case O((x-x0)**n) must detect
  and catch (x-x0)**k terms in a whole expression for every operation. And
  detect and do not permit operations between expressions which contain
  O((x-x1)**n) and O((x-x2)**n) respectively  (x1<>   x2).
It would be a "for-the-moment" fix which is likely to be changed (and
should be marked as such). I think it is still better than no O() term
at all.

  B. I realize only maintaining of O behavior "asymptotic expansions" with
  knowing series structure ( 2) in [1] )

  Nevertheless, I observe consensus that A*or*  B must be implemented
  obligatory.
  And what is more, both A*and*  B implementations better.
Could you please explain what you mean with the last sentence?

Vinzent


Well, It will be easer to explain from the point of view of programmer.

It is clear that "A" is sympy Add class which consists of polynomials terms "a_n 
(x-x0)**n" and O((x-x0)**n).

In "B" is imagined class TaylorExpansion that implement the "n-th order Taylor 
expansion" so it track his precision (n), the list of [a_n], variable x, and point x0.
[a_n] may by any sympy expression, not necessarily numbers.

It has self-depended method for representation it in sympy (print) to print "a0 + 
a1*(x - x0) + ... + O(x - x0)"

It has method "asExpr()" to shape "A" variant for general propose.

It has method "truncate" to form Taylor polynomial. May be another class too if 
it has not analog in polynomials module yet.

The reason of this class - that manipulations with its objects will be easer.

F.e. the derivative of it will bring to the same object but the list of [a_n] 
will be shifted throu its index by one and precision will be decremented.

Summation equivalent to summation of lists (c_i = a_i + b_i), with alignment of 
precision to minimal value of both.

Multiplication will be a little complex, but still without analyzing (x-x0)**k 
parts of expression.

May be I became entangled now it with similar "exponential generating 
function", but the last one is not derived from function (opposite to Taylor), and 
it is not expansion (it is series).

--
Alexey U.

It sounds like a special TaylorExpansion class should be implemented as a 
wrapper around Poly.

Aaron Meurer


It is not now clear for me what the class's hierarchy must be right now, Its preliminary rough ideas, based in particular what I have seen in Wolfram Mathematica or in thread in sympy-maillist, or upon common sense.

Right now I learn closely the documentation of Wolfram Mathimatica for further construction of the sympy wiki page about series and function expansion, many things are good and I hope will be in sympy in future, some nitpicks are present too.

Return to Poly...

Polynomials as I know concentrated on the tasks that is special for them: finding roots, factorization, orthogonal and so on... Not only for effective binary operations with them. Many of them (generally saying) are out of sense for asymptotic expansions (when expression consist of O()).

Also, If someone wants to use the code of Polys then it is better to obtain "Taylor polynomial" throu some method (I have mentioned it in previously message). It wold be clear both for user and sympy what context he is mean.

Also, I don't know exactly right now, whether TaylorExpansion or TaylorSerias must be know something about source function (from which this object is derived) for some future tasks connected with convergence and so on. And finite Polys don't know anything about convergence.

So I have doubts for TaylorExpansion to be inherited from Polys.

Nevertheless all this is roughly now.
After formulation from every quarter what we must expect mathematically and from sympy (I work with this though not quickly), only then we can be able saying about concrete implementation.


--
Alexey U.

--
You received this message because you are subscribed to the Google Groups 
"sympy" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to 
[email protected].
For more options, visit this group at 
http://groups.google.com/group/sympy?hl=en.

Reply via email to