hold on, david. the formula I posted previously from wolfram is ArcTan[x,y]
with x or y complex: its the same of arctan2(x,y). arctan is another
function (even though arctan2(y,x) should be "a better" arctan(y/x)).

the correct formula for y = arctan(x), with any x (real or complex), should
be (if I still can play with sin and cos...):

y = arctan(x) = 1/(2j) * log((1j-x)/(1j+x))

[ you can get it doing: y = arctan(x) --> x = tan(y) = sin(x)/cos(x) = -1j *
(exp(1j*y)-exp(-1j*y))/(exp(1j*y)+exp(-1j*y); then let z = exp(1j*y) and
solve in z.]

I've tested the formula and it seems ok for different inputs (I've checked
that tan(arctan(x)) == x):
---------------------------
octave:56> x = 1; tan(1/2/1j*log((1j-x)/(1j+x)))
ans = 1.0000
octave:57> x = 1j; tan(1/2/1j*log((1j-x)/(1j+x)))
ans = -0 + 1i
octave:58> x = 2j; tan(1/2/1j*log((1j-x)/(1j+x)))
ans = 1.8369e-16 + 2.0000e+00i
octave:59> x = 1+2j; tan(1/2/1j*log((1j-x)/(1j+x)))
ans = 1.0000 + 2.0000i
---------------------------

hth,
L.

On 4/30/07, David Goldsmith <[EMAIL PROTECTED]> wrote:


> (hint what is arctan(0+1j)?)
>
Well, at the risk of embarrassing myself, using arctan(x+iy) = I get:

arctan(0+1i) = -i*log((0+i*1)/sqrt(0^2 + 1^2)) = -i*log(i/1) = -i*log(i)
= -i*log(exp(i*pi/2)) = -i*i*pi/2 = pi/2...

Is there some reason I'm forgetting (e.g., a branch cut convention or
something) why this is wrong?

DG
_______________________________________________
Numpy-discussion mailing list
Numpy-discussion@scipy.org
http://projects.scipy.org/mailman/listinfo/numpy-discussion

_______________________________________________
Numpy-discussion mailing list
Numpy-discussion@scipy.org
http://projects.scipy.org/mailman/listinfo/numpy-discussion

Reply via email to