On 6/28/2012 12:00 PM, Stavros Macrakis wrote:
> There are two ways I can think of to introduce discontinuities into a
> function:
>
> * Functions with discontinuities, e.g. tan(x), 1/x, mod(x,2), etc.
> That reduces to the problem of solving for the appropriate values of
> the argument.
> * Explicit conditionals, e.g. if x>0 then 1 else 0.
>
> Everything else is a composition of these two.
>
> It is easy enough to recursively search the expression tree for these
> cases. There are some refinements to the basic idea that are harder
> to implement:
>
> * Dealing with removable or spurious discontinuities (if you want to),
> e.g. what is the desired result for sin(x)/x or mod(x,%pi)*sin(x)?
> * Combining discontinuities nicely, e.g. discontinuities(1/sin(x)) is
> %z1*%pi and discontinuities(1/sin(2*x)) is %z2*%pi/2; but the second
> case subsumes the first case, so discontinuities(1/(sin(x)*sin(2*x))
> is simply %z3*%pi/2.
discontinuities occur along branch cuts (which may be movable) e.g.
consider log(x^2-1). Something
bad happens at x=+1, x=-1, and along (some) line connecting them.
If you have more than one variable, algorithms are lacking, generally.
Mathematica has a "Reduce" command, sort of like Solve .... so that
Reduce [ Log[x^2-1]-y==0, x]
-\[Pi] < Im[y] <= \[Pi] && (x == -Sqrt[1 + E^y] || x == Sqrt[1 + E^y])
which might be considered a description of the problematic locations for
1/(log(x^2-1)-y) ...
Im(y) in [-pi,pi] and x=+- sqrt(1+exp(y))
so y could be any value in some band it its complex plane, and
x could be either of 2 points. I'm not sure why it restricts y, off hand.
> _______________________________________________
> Maxima mailing list
> Maxima at math.utexas.edu
> http://www.math.utexas.edu/mailman/listinfo/maxima