help-octave
[Top][All Lists]

## Re: fractional powers

 From: Mario Storti Subject: Re: fractional powers 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: address@hidden
>

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                 |