Есть ли способ заставить ContourPlot перепроверить все точки на каждом этапе алгоритма рекурсии? - PullRequest
6 голосов
/ 05 февраля 2011

Благодаря этому превосходному анализу алгоритма 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 Ответ

3 голосов
/ 05 февраля 2011

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

enter image description here

enter image description here

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

enter image description here

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

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

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

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

enter image description here

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...