On 27 Feb., 21:26, "Alexey U. Gudchenko" <[email protected]> wrote: > 25.02.2011 20:16, Ronan Lamy пишет: > > Le vendredi 25 février 2011 à 18:49 +0300, Alexey U. Gudchenko a écrit : > >> 25.02.2011 16:03, Ronan Lamy пишет: > >>> Le vendredi 25 février 2011 à 16:26 +0545, Chris Smith a écrit : > >>>> Alexey U. Gudchenko wrote: > >>>>> 25.02.2011 08:59, Alexey U. Gudchenko пишет: > > >>>>> Conversely, internal calling of series method therefore must be with > >>>>> option (..., somthing_hack=True) if it options is needed. > > >>>> If you mean that something internal wants the unshifted series, then > >>>> yes sudo=True should be used and the O term removed. This would be the > >>>> same thing as getting the shifted series, removing the O term and > >>>> doing the substitution yourself of `s.removeO().subs(x, x-x0)`. > > >>>> So if there are no objections, I'll commit this in about 5 hours. > > >>> Wait. I don't think that adding yet another option is a good idea, > >>> particularly when its purpose is to choose between two bad workarounds. > >>> And 'sudo' is a bad name anyway. > > >> Excuse me, > > >> > choose between two bad workarounds. > > >> Why f.e. this variant: > > >> > h[2]>>> cos(x).series(x,1,n=2) > >> > (1 - x)*sin(1) + cos(1) + O((x - 1)**2) > > >> is bad ? > > > What's bad is that '(x - 1)' in the O() is actually a symbol that's > > completely unrelated to x. This could be very confusing and it's > > unlikely that such an expression will be handled correctly by existing > > functions. > > >> (except canonical representation of series, and your remarks that it is > >> "asymptotic expansion" indeed, not series) > > > As you said, these problems are unrelated with Chris's work. > > >> I. > >> <snip> > > > I agree that O() needs to be fixed to take an x0 argument before we can > > represent expansions at a point other than 0. Correct handling of all > > cases (x0 = oo, O(1, x, x0=0) + O(1, x, x0=1), ...) can probably wait. > > 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 -- 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.
