DISCONTINUITIES IN A CURVE



On 11/05/2012 05:31 PM, Raymond Toy wrote:
>      Rupert> Raymond Toy <toy.raymond at gmail.com> writes:
>      >> This shouldn't be a problem with the current plot2d.  It uses an
>      >> adaptive plotting algorithm to use more points where the curve is
>      >> changing too fast.  If, by chance, plot2d tries to evaluate f(1),
>      >> maxima catches that error and pretends (I think) that there is a
>      >> discontinuity at that point and tries to add more points in the
>      >> neighborhood to get a better plot.
>      >>
>      >> Of course, if the discontinuity is very narrow and the number of
>      >> initial sample points is too sparse, plot2d will never see it and hence
>      >> never plot it.  No surprise there.
>      >>
>      >> The adaptive plotter isn't used for any other kind of plot such as
>      >> parametric plots, unfortunately.
>
>      Rupert> Well, at least on my machine,
>
>      Rupert> f(x) := signum(x) * abs(x)^(-1/n)$
>      Rupert> plot2d(f(x), [x, -1, 1.1]), n=10;
>
>      Rupert> displayed the expected behaviour. Maybe I've misunderstood what's going
>      Rupert> on.
>
> Ok, I'm not sure what you expect the behavior to be.  With our
> example, I see a curve drawn on the y-axis from about y=-2.25 to
> y=2.25.  If I change the plot limits to [x, -1,1], I see the same
> curve, except there is no line drawn on the y-axis.
>
> Which of these is your expected behavior?  Or were you expecting
> something else?
>
In my opinion, the result when the error is caught  (domain [x, -1, 1]) 
is better than the result when it is not detected (domain [x, -1, 1.1]). 
It would be nice if overflows in the slope were also caught, so the plot:

  plot2d (0.7*signum(x), [x,-1,1]);

would also show a discontinuity in x=0, rather than the current behavior 
where a vertical line is shown at x=0.

Regards,
Jaime