When I plot a high degree polynomial such as (available as CloudObject since it is too big to explicitly include):
polyRational = Rationalize[CloudGet[CloudObject[
"https://www.wolframcloud.com/obj/a96f3d4d-fd7f-483b-918c-b7bde824397d"]], 0];
I run into weird issues when I try to plot it over a small plot range. See the following plots:
Plot[Evaluate[polyRational], {x, 0, 11}, WorkingPrecision -> 300]
Plot[Evaluate[polyRational], {x,
Sequence @@ {1545030033/355894030, 3195584609/736095390}},
WorkingPrecision -> 300]
Plot[Evaluate[polyRational], {x,
Sequence @@ {302662955/69717699, 85724562/19746451}},
WorkingPrecision -> 600]
If we want to zoom in on the last minimum initially things go fine. But when our plotrange becomes too small something weird happens. The plotrange seems to be ignored and we only see one line. (All numbers in the example are rationalized and we work with high WorkingPrecision to avoid issues due to low precision numbers.)
When run independently, only the first plot (not the one with the "bug") produces an error, namely General::munfl
. The other plots get produced without any error.
Why does this happen? How can I work around it? (I would like it if I could visually confirm whether there is only a single minimum or whether there are multiple minima in the plotted region and whether the function goes below 0 in this region. Tips on how to confirm this without plotting are also welcome. FindMinimum finds a positive minimum, but I am not sure how to find out whether an additional minimum could exist.)
xm = {302662955/69717699, 85724562/19746451} // Mean; Plot[polyRational /. x -> x1 + xm, {x1, Sequence @@ ({302662955/69717699, 85724562/19746451} - xm)}, WorkingPrecision -> 600]
$\endgroup$