1 | initial version |
Here is a way to get Maxima to do this within Sage. See the Maxima list thread about this issue. Fateman is one of the preeminent authorities on computer algebra.
sage: var('w,eps')
(w, eps)
sage: assume(w,'real')
sage: assume(w<0)
sage: E = (w+i*eps).maxima_methods().plog()
This is a relatively new thing which allows much easier access to most Maxima methods. Here, we are accessing a principal value version of the log.
sage: limit(E,eps=0,dir='+')
I*pi + log(-w)
I hope this clarifies things.
Essentially, the issue is that Maxima (and hence symbolic Sage) wants its log, sqrt, and other multi-valued functions to stay multivalued as long as possible, really forever. So anything like what you want is not really correct to ask for, according to that point of view (because log(w)
and log(-w)
are both the same set of values).
So, as far as we can tell, the assumption is just ignored in the original limit, which was my original suspicion.
I realize you want something different from it, but it's not so much about being wrong as having different goals.