square root expression simplification



On Nov. 1, Richard Fateman wrote:
-----------------------------------------------------
This seems to require that you be able to compute abs(zz) and carg(zz), 
which is
as much an issue as log(zz), when zz is not something obvious, like a 
positive
integer.  Consider the expression zz= x^y.
---------------------------------------
I agree this p.v. business is only feasible for very
simple x and y, for example , z : (2+3*%i)^(1-%i)
will give consistent answers for Log(z)
and psqrt(z), and can be compared with
respectively, log(z) and sqrt(z).


An example where we get wildly different
answers is, for example,

   z : (2+3*%i)^(asin(3+2*%i))

as shown below.
--------------------
(%i1) (display2d:false,fpprintprec:8,ratprint:false,
        Log(zz) := log (abs(zz)) + %i*carg (zz),
        psqrt(zz) := (if zz = 0 then 0
               else if integerp(zz) then sqrt(zz) else exp (Log (zz)/2)),
        toN(ee):= float (rectform (float (ee))) )$

(%i2) z : (2+3*%i)^(asin(3+2*%i))$

LOG

Maxima's  log(z) fails with error, so we try:

(%i3) log (rectform (z));

(%o3) log(13^(atan((3-sqrt(4*sqrt(10)+4)/sqrt(2))
                    /(sqrt(4*sqrt(10)-4)/sqrt(2)-2))
             /2)
           *%e^(atan(3/2)*log((3-sqrt(4*sqrt(10)+4)/sqrt(2))^2
                               +(sqrt(4*sqrt(10)-4)/sqrt(2)-2)^2)
               /2)
           *cos(log(13)*log((3-sqrt(4*sqrt(10)+4)/sqrt(2))^2
                             +(sqrt(4*sqrt(10)-4)/sqrt(2)-2)^2)
                 /4
                 -atan(3/2)*atan((3-sqrt(4*sqrt(10)+4)/sqrt(2))
                                  /(sqrt(4*sqrt(10)-4)/sqrt(2)-2)))
           -%i*13^(atan((3-sqrt(4*sqrt(10)+4)/sqrt(2))
                         /(sqrt(4*sqrt(10)-4)/sqrt(2)-2))
                  /2)
              *%e^(atan(3/2)*log((3-sqrt(4*sqrt(10)+4)/sqrt(2))^2
                                  +(sqrt(4*sqrt(10)-4)/sqrt(2)-2)^2)
                  /2)
              *sin(log(13)*log((3-sqrt(4*sqrt(10)+4)/sqrt(2))^2
                                +(sqrt(4*sqrt(10)-4)/sqrt(2)-2)^2)
                    /4
                    -atan(3/2)*atan((3-sqrt(4*sqrt(10)+4)/sqrt(2))
                                     /(sqrt(4*sqrt(10)-4)/sqrt(2)-2))))
(%i4) float(%);
(%o4) -2.8103967*%i-0.697615

next use p.v. def:

(%i5) Log (z);

(%o5) log(13^(atan((3-sqrt(4*sqrt(10)+4)/sqrt(2))
                    /(sqrt(4*sqrt(10)-4)/sqrt(2)-2))
             /2)
           *%e^(atan(3/2)*log((3-sqrt(4*sqrt(10)+4)/sqrt(2))^2
                               +(sqrt(4*sqrt(10)-4)/sqrt(2)-2)^2)
               /2))
       +%i*(atan(3/2)*atan((3-sqrt(4*sqrt(10)+4)/sqrt(2))
                            /(sqrt(4*sqrt(10)-4)/sqrt(2)-2))
           -log(13)*log((3-sqrt(4*sqrt(10)+4)/sqrt(2))^2
                         +(sqrt(4*sqrt(10)-4)/sqrt(2)-2)^2)
            /4)
(%i6) float(%);
(%o6) 3.4727886*%i-0.697615

  (not -2.8103967*%i-0.697615 that log returned)

    (which answer is correct?? )


SQRT

Maxima sqrt:


(%i7) sqrt(z);
(%o7) sqrt((3*%i+2)^asin(2*%i+3))

(%i8) float (sqrt(z));
(%o8) sqrt((3.0*%i+2.0)^asin(2*%i+3))

(%i9) toN (sqrt(z));
(%o9) 0.116301-0.695877*%i

p.v. psqrt  use:

(%i10) psqrt(z);

(%o10) %e^((log(13^(atan((3-sqrt(4*sqrt(10)+4)/sqrt(2))
                          /(sqrt(4*sqrt(10)-4)/sqrt(2)-2))
                   /2)
                 *%e^(atan(3/2)*log((3-sqrt(4*sqrt(10)+4)/sqrt(2))^2
                                     +(sqrt(4*sqrt(10)-4)/sqrt(2)-2)^2)
                     /2))
          +%i*(atan(3/2)*atan((3-sqrt(4*sqrt(10)+4)/sqrt(2))
                               /(sqrt(4*sqrt(10)-4)/sqrt(2)-2))
              -log(13)*log((3-sqrt(4*sqrt(10)+4)/sqrt(2))^2
                            +(sqrt(4*sqrt(10)-4)/sqrt(2)-2)^2)
               /4))
          /2)

(%i11) float(%);
(%o11) 2.7182818^((log(13^(atan((3-sqrt(4*sqrt(10)+4)/sqrt(2))
                                 /(sqrt(4*sqrt(10)-4)/sqrt(2)-2))
                          /2)
                        *%e^(atan(3/2)*log(
                                       (3-sqrt(4*sqrt(10)+4)/sqrt(2))^2
                                        +(sqrt(4*sqrt(10)-4)/sqrt(2)-2)^2)
                            /2))
                 +%i*(atan(3/2)*atan((3-sqrt(4*sqrt(10)+4)/sqrt(2))
                                      /(sqrt(4*sqrt(10)-4)/sqrt(2)-2))
                     -log(13)*log((3-sqrt(4*sqrt(10)+4)/sqrt(2))^2
                                   +(sqrt(4*sqrt(10)-4)/sqrt(2)-2)^2)
                      /4))
                 /2)

  use toN instead of float here:

(%i12) toN (psqrt(z));
(%o12) 0.695877*%i-0.116301

  ( not 0.116301-0.695877*%i  as sqrt gave)

Which answer is correct??

---------------------------------------------------
Ted