On Dec 18, 5:24 pm, jzakiya [email protected] wrote:

That only works for odd roots of negative numbers.

a root for this negative number.

For negative real value roots:

from e^(i*x) = cos(x) + i*sin(x) where x = PI/2

= 2.828*(1+i)

X**(1/4.0)

=> (2.82842712474619+2.82842712474619i)

BTW there is an error (sort of) in ‘complex’ too

require ‘complex’

include Math

x = Complex(-27,0)

=> (-27+0i)

y = x**(1/3.0) # or x**3**-1

=> (1.5+2.59807621135332i) # should be (-3+0i)

y**3

=> (-27.0+1.24344978758018e-14i)

Complex(-3,0)**3

=> -27

Whenever you take the root n of a number you actually

get n values. If the value is positive you get n copies

of the same positive real value.

When you take the root of a negative real value you

get n roots too, for n even and odd.

For even odd, you get one real root and n/2 Complex Conjugate Pairs

(CCP).

Thus, for n=3 for (-27)^(1/3) the real root is x1=-3

and x2 is y above and x3 is the CCP of y.

For n=5, you get one real root and 2 pairs of CCPs, etc.

For n even, you get n/2 CCPs only.

So, for n=2 there is one pair of CCP roots.

For n=4 you get 2 different CCP roots, etc,

Thus for n even there are no real roots.

So, I think it’s more intuitive (for most people)

to expect Complex(-27,0)**(1/n-odd) to return the real

root x1 only (i.e. (-3)*(-3)*(-3) = -27), so have it

act as Complex(-27,0).real (for n odd) be the default.

I guess complex variables aren’t called complex for nothing.