axiom-developer
[Top][All Lists]
Advanced

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

Re: [Axiom-developer] Interest of the second parameter in normalize


From: Waldek Hebisch
Subject: Re: [Axiom-developer] Interest of the second parameter in normalize
Date: Thu, 14 Dec 2006 23:58:07 +0100 (CET)

Francois Maltey wrote:
> I'm playing with normalize (expr, x) and normalize (expr, y).
> 
> normalize (expr, x) limits the number of kernel with x.
> So exp (2*x) become exp (x)^2. The other variables remain.
> Is it right ?
> 
> But axiom don't recognize 0 in coefficients in y. Is it right ?
> I test normalize ((exp(2*x)+exp(x))*exp(2*y)/exp(y)-exp(x)*exp(y), x).
> I get ((e^x)^2 + e^x (e^2y-(e^y)^2)) / e^y.
> 
> But if we want to simplify/resolve this polynomial in e^x it's necessary to
> recognize it's simplified coefficients. Am I right ?
> 
> So what is the interest of normalize (expr, x) in front of normalize (expr) ?
> If then axiom must normalize theses coefficients. I don't understand.
> 

I can not give good answers your questions.  But some remarks may be
helpfull:

1) in general computer algebra systems have to choose when to
normalize expressions.  Normalizing sometimes is impossible 
(non-computable), usually takes time and can make expressions
bigger.  OTOH normalizing is frequently neccessary to get
correct results

2) rischNormalize is used by Axiom integrator. AFAICS common
belif is that in order to integrate with respect to x one
has first normalize with respect to x (otherwise integration
procedure may give wrong results).  There were claims that
there is no need to normalize with respect to other variables
(and currently Axiom integration procedure normalizes only
with respect to x).  OTOH I have examples when Axiom fails
due to lack of normalization...

3) main work of normalize(expr) is in localnorm and localnorm is:

  localnorm f ==
      for x in variables f repeat
        f := rischNormalize(f, x).func
      f

so essentially normalize(expr) is equivalent to
   normalize(...(normalize(expr, v1), v2,...,vn)

where v1,..., vn are all variables appearing in expr.  As I wrote
in another message I think this is wrong.

4) rischNormalize (so also normalize) is limited to elementary functions.
If a function is non-elementary in y and elementary in x it makes
some sense to use rischNormalize with respect to x (presumably using
some more complicated procedure with respect to y).

-- 
                              Waldek Hebisch
address@hidden 




reply via email to

[Prev in Thread] Current Thread [Next in Thread]