login  home  contents  what's new  discussion  bug reports help  links  subscribe  changes  refresh  edit

 Submitted by : kratt6 at: 2008-02-01T01:50:46-08:00 (10 years ago) Name : Axiom Version : default friCAS-20090114 Axiom-20050901 OpenAxiom-20091012 OpenAxiom-20110220 OpenAxiom-Release-141 Category : Axiom Aldor Interface Axiom Compiler Axiom Library Axiom Interpreter Axiom Documentation Axiom User Interface building Axiom from source lisp system MathAction Doyen CD Reduce Axiom on Windows Axiom on Linux Severity : critical serious normal minor wishlist Status : open closed rejected not reproducible fix proposed fixed somewhere duplicate need more info Optional subject :   Optional comment :

Consider

fricas
ex := ((-((-z*z)+1)^(1/2))+1)^(1/2)
 (1)
Type: Expression(Integer)

which is certainly continuous, but not differentiable at zero. Still, axiom gives

fricas
m:=z::UTS(AN, z, 0)
 (2)
Type: UnivariateTaylorSeries?(AlgebraicNumber?,z,0)
fricas
((-((-m*m)+1)^(1/2))+1)^(1/2)
 (3)
Type: UnivariateTaylorSeries?(AlgebraicNumber?,z,0)

which is correct for positive values, but not for negative values of z. Of course, there are simpler functions that are developed like that, abs for example.

Notation x = y^(1/2) really means that x^2 = y with some rule to choose which solution is desired. In UTS equation ex^2 = (1 - (1 - z)^(1/2)) has two solutions. FriCAS provides one of them. Frequently used rule is take positive square root, but this rule produces singularity (discontinuity of derivative) by jumping from one branch to the other at 0. So in many context one requires smooth roots and above we get such a root.

I'm not sure what's the correct way to deal with this. MuPAD? is very careful here:

    >> ex := ((-((-z*z)+1)^(1/2))+1)^(1/2)
ex := ((-((-z*z)+1)^(1/2))+1)^(1/2)

2 1/2 1/2
(1 - (1 - z )   )
>> series(ex, z=0, 5)
series(ex, z=0, 5)

/  2 \1/2        /  2 \1/2         /  2 \1/2
2 | z  |         4 | z  |          6 | z  |
/  2 \1/2   z  | -- |      7 z  | -- |      33 z  | -- |
| z  |         \  2 /           \  2 /            \  2 /         8
| -- |    + ------------ + -------------- + --------------- + O(z )
\  2 /            8              128              1024
>> series(abs(z), z=0, 5)
series(abs(z), z=0, 5)

z         6
------- + O(z )
sign(z)


Status: open => rejected

 Subject:   Be Bold !! ( 14 subscribers )