Bill Allombert on Thu, 12 Dec 2002 14:00:21 +0100

[Date Prev] [Date Next] [Thread Prev] [Thread Next] [Date Index] [Thread Index]

Re: How to eliminate the big-oh

On Thu, Dec 12, 2002 at 12:26:44PM +0100, Franck MICHEL wrote:
> Thank you, it works. Certainly a naive question, but: how can we know the
> level of priority of variables? Is it possible to change it?

The rule is: x has always the highest priority, then priorities are
assigned to variable as soon as they are introduced.

The customary way to avoid problem is to enter x;t;z as the start of a gp
session, so that we have  x >> t >> z

> >fortunately there is a  simpler solution, convert your polynomial to a
> vector:
> >
> >Pol(truncate(Vec(taylor((1-x)/(1-t),t))))
> It's a nicest solution, unfortunately it does not work for other expressions.
> For example, if we slightly modify (1-x)/(1-t) and consider
> truncate(taylor((1-x)/(x-t),t)), we get -1+O(t^16)
> Pol(truncate(Vec(taylor((1-x)/(x-t),t)))) gives the same bad answer

Of course, because it is a rational function not a polynomial.
The answer is correct, since truncate() apply to the highest priority
variable, that is x, and (1-x)/x=x^-1 - 1 + O(x^15)

> but subst(truncate(subst(taylor((1-x)/(x-t),t),x,z)),z,x) gives the good
> expansion.

> If we ask for the type of taylor(1/(1-t),t), we get "SER"; for
> taylor((1-x)/(1-t),t) we get "POL"; and for taylor((1-x)/(x-t),t) we get
> "RFRAC". When we have x and t, the type is determined with respect to x. It
> is determined with respect to t after changing z in x as you have
> suggested. If we have to deal with a quotient with multiple variables (x,
> y, z, etc.., and t), I presume all the variables above the level of
> priority of t would have to be substituted by variables below the level of
> priority of t. But it is not very convenient, the determination of levels
> of priority of variables is a little bit mysterious for me and I am
> wondering if there would be a better solution than using substitutions with
> low-level variables.

I agree, this system is confusing, but we don't have any idea to make it

I suppose we should extend truncate to take the variable we want to truncate
as an extra parameters.