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