Menu

#4861 limit(imagpart(acos(x)), x, minf) wrong

None
open
nobody
5
12 hours ago
18 hours ago
No
(%i1) limit(imagpart(acos(x)), x, minf);
(%o1)                              infinity
(%i2) limit(imagpart(acos(x)), x, inf);
(%o2)                                 inf

%o1 is clearly wrong. The imaginary part is by definition real, so it can't be infinity (which means complex). The correct answer is minf. %o2 is correct.

imagpart(acos(x)) seems to be correct:

(%i3) at(imagpart(acos(x)), x = -1000.0);
(%o3)                        - 7.600902209541989
(%i4) at(imagpart(acos(x)), x = -10000.0);
(%o4)                        - 9.903487550036127
(%i5) at(imagpart(acos(x)), x = -100000.0);
(%o5)                       - 12.206072645505174
(%i6) at(imagpart(acos(x)), x = -100000000.0);
(%o6)                        - 19.11382792451231

Discussion

  • David Scherfgen

    David Scherfgen - 15 hours ago

    For asin, we have the same problem, but in the other direction.

    Also: csign(imagpart(acos(x))) and csign(imagpart(asin(x))) both result in complex. That's unfortunate!

     
  • David Scherfgen

    David Scherfgen - 12 hours ago

    Turns out this is caused by Maxima simplifying log(x^2) to 2*log(x), when the correct answer for real x is 2*log(abs(x)). I'm testing this, but it will likely break many things.

     

Log in to post a comment.

Monday.com Logo