Waldek Hebisch <[EMAIL PROTECTED]> writes:

[....] 

> There is an extra difficulty: traditional numerical definitions
> of elementary functions have branch cuts.  Branch cuts means
> that we no longer have analytic functions and we may get
> zero divisors even if algebraic approach would produce unique
> answer.
 
> Branch cuts turn decidable problem into undecidable one:
 
> I am not sure how well we want to support branch cuts.  I belive
> that in most practical cases functions are analytic, for example
> sqrt(exp(%i*x)) is just exp(%i*x/2) (while branch cut interpretation
> would produce artifical discontinuities).  

> In other work "correctly"
> handling branch cuts means solving hard problem giving result
> which probably does not match with user expectations...

> OTOH for numeric computation branch cuts seem to be accepted
> solution.  Using one definition for symbolic computations
> and a different one for numeric computations breaks one
> of fundamental expectations (namely, that evaluating functions
> at a point is a homomorphizm).

I find very important this last point of view.

I try to use and to teach almost(?) the same mathematics with a pencil
and with a computer algebra system to my students.

A lot of formula about sqrt are right because there are the usual
branch cuts. Without theses branch cuts I fear we can write 
-1 = 1^(1/2) = 1 and the equal isn't so associative.

I think the map notion has priority over branch cut.
For real numbers sqrt (x^2) = abs x is an universal equality 
because sqrt is a map. 

When we prefer to write sqrt (x^2) = x we loose the common sens of 
mathematics and all the map abilities.

I give this exercice to my students. 
Solve in x for a real number a the equation a (a-1) x = a
(or an other equation as this one)
With an algebra point of view we get x = 1/(a-1).

Standard mathematics prefers : a=0 => every x is solution.
                               a=1 => there is no solution
                                   => x = 1 / (a-1)

0/0 is undefined, even in a/a when a=0

I prefer a CAS which respect (almost) all mathematics by default.

When the question is undecidable or isn't coded an option 
as << NoPole >> prevents the user to be prudent. 
The topic of the #285 bug is almost the same.

In the elemntry package I test I only simplify by default exp (log z) = z, 
not log (exp z) = z. 

But in a rewrite? package I'll add a rewrite rule as
rewrite (log (exp z), logExp) which gives z.

François.


_______________________________________________
Axiom-developer mailing list
Axiom-developer@nongnu.org
http://lists.nongnu.org/mailman/listinfo/axiom-developer

Reply via email to