From owner-help-octave at bevo dot che dot wisc dot edu Tue Nov 12 14:28:19 1996 Subject: Re: fractional powers From: Mario Storti To: help-octave at bevo dot che dot wisc dot edu Date: Tue, 12 Nov 1996 17:29:12 -0300 > I'm somewhat disturbed by the following behaviour on octave. Perhaps it > is standard and I shouldn't be worried but it surprised me. Consider the > following question: what is the cube root of -1? Clearly the answer > should be -1. Now ask octave > > octave:1> x = (-1)^(1/3) > x = 0.50000 + 0.86603i > > it gets wierder if you now cube that number > > octave:2> x^3 > ans = -1.0000e+00 + 1.2246e-16i > > This is pretty close to the truth but still strange to my way of thinking. > Similar wierdness shows up with other fractional powers: 1/5, 1/7, etc. > > Any thoughts? > > Heber Farnsworth | Department of Finance > Univerity of Washington | Box 353200 > tele: (206) 528-0793 home | Seattle, WA 98195-3200 > tele: (206) 543-4773 finance web: http://weber.u.washington.edu/~heberf > fax: (206) 685-9392 email: heberf at u dot washington dot edu > I think that Octave, Matlab and all the others (even Fortran! I tried it right now!!.) performs z^(1/3) as: z^(1/3)=exp(1/3*log(z)) log(z) is multi-valued and the standard definition is log(z) real over the positive real axis and with a branch-cut in the negative real axis. For z strictly on the negative real axis it gives: log(z)=log(|z|) + i*pi and then z^(1/3) is computed as: z^(1/3)=exp(1/3*(log(|z|) + i*pi)) =|z|^(1/3)* exp(i*pi/3) which is the solution given by Octave. If you add a small negative imaginary part, then you cross the branch-cut and then: log(z)=log(|z|) - i*pi and the result will be: z^(1/3)=exp(1/3*(log(|z|) - i*pi)) =|z|^(1/3)* exp(-i*pi/3) > octave:9> (-1-i*1e-15)^(1/3) > ans = 0.50000 - 0.86603i Mario %%%%%%<>%%%%%%<>%%%%%%<>%%%%%%<>%%%%%%<>%%%%%%<>%%%%%%<>%%%%%%<>%%%%%%<>%%% Mario Alberto Storti | Fax: (54)(42) 55.09.44 | Grupo de Tecnologia Mecanica | Tel: (54)(42) 55.91.75 | INTEC, Guemes 3450 - 3000 Santa Fe | http://venus.unl.edu.ar/gtm-eng.html | Argentina | Home: Gob. Vera 3161 | Reply: mstorti at galileo dot unl dot edu dot ar| | (54)(42) 55 dot 00 dot 23 | (54)(42) 55.00.23 |