Есть ли способ заставить ContourPlot повторно проверить все точки На каждом этапе его алгоритма рекурсии?

спасибо этой отличный анализ Plot алгоритм Ярослава Булатова, теперь я понимаю, почему Plot3D и ContourPlot не работает с перерывами и разрывами.

например, в следующем случае ContourPlot не может нарисовать контур x^2 + y^2 = 1 вообще:

ContourPlot[Abs[x^2 + y^2 - 1], {x, -1, 1}, {y, -1, 1}, Contours -> {0}]

это потому, что алгоритм не идет глубоко в область около x^2 + y^2 = 1. Он "сбрасывает" эту область на начальном этапе и не пытайтесь исследовать его дальше. Увеличение MaxRecursion ничего не делает в этом смысле. И даже недокументированный вариант Method -> {Refinement -> {ControlValue -> .01 [Degree]}} не помогает (Но делает Plot3D немного мягче).

приведенная выше функция является простым примером. В реальной жизни я работаю с очень сложными неявными функциями, которые не могут быть решены аналитически.

есть ли способ сделать ContourPlot углубляться в такие области вблизи разрывов и разрывов?

1 ответов


Это стандартные графики .

enter image description here

enter image description here

контур на 10^-20

enter image description here

Они довольно ясны для меня.

вы ожидаете чего-то более точного?

редактировать

Если вы хотите использовать параметр контуры->{0}, вы можете использовать:

enter image description here