[Scilab-users] About the complex inverse tangent function
Samuel Gougeon
sgougeon at free.fr
Fri Aug 15 11:28:35 CEST 2014
Hello Pierre,
Le 15/08/2014 10:52, Pierre Vuillemin a écrit :
> Le jeudi 14 août 2014 à 19:46 +0200, Samuel Gougeon a écrit :
>> With Scilab 5.5.0 on Windows 7 x64:
>> -->z = 2*%i
>> z =
>> 2.i
>> -->disp([atan(z),%i/2*log((%i+z)/(%i-z))])
>>
>> 1.5707963 + 0.5493061i 1.5707963 + 0.5493061i
> I am on a 64-bit linux environment (Debian Jessie, Scilab 5.5.0), the
> result would be OS-dependent?
It is possible. Some packages or/and some single functions -- including
maths ones -- depend on the OS.
> The relation
>
> log(ab) = log(a) + log(b)
>
> only stands for the multi-valued logarithm function (or modulo pi). With
> the principal value of the log, defined as
>
> log(z) = ln(|z|) + i * arg(z)
>
> where -pi<arg(z)<=pi,
Is this interval conventionnaly standard for the principal value, rather
than -pi <= arg(z) < pi ?
> this is not true as soon as -pi<arg(a)+arg(b)<=
> pi. In particular, it is not true on the branch cut (- inf, 0].
> For instance,
>
> log(-1) = j pi
>
> log(-1)+log(-1) = 2j pi != log(1) = 0
It is, modulo 2.pi : i.2.pi [2.pi] ~ i.0 = 0
> This is merely a problem of convention in the definitions, but this
> leads to differences in the value of the atan on its branch cuts.
Indeed. Both results that you get from atan and log on Linux are
correct, and equivalent.
Results from win7 are equal and agree with the standard interval (-pi, pi].
Samuel
More information about the users
mailing list