Is there a way to get ContourPlot to re-check all points at each step of the recursion algorithm?

Thanks to this, an excellent analysis of the Plot algorithm by Yaroslav Bulatov, now I understand the reason why Plot3D and ContourPlot cannot smoothly perform functions with gaps and tears.

For example, in the following case, ContourPlot cannot draw the outline x ^ 2 + y ^ 2 = 1:

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

This is due to the fact that the algorithm does not penetrate deep into the region near x ^ 2 + y ^ 2 = 1. It "lowers" this region at the initial stage and does not try to investigate it further. Increasing MaxRecursion does nothing in this sense. And even the undocumented version of Method -> {Refinement -> {ControlValue -> .01 \[Degree]}} does not help (but makes Plot3D little smoother).

The above function is a simple example. In real life, I work with very complex implicit functions that cannot be solved analytically.

Is there a way to get ContourPlot to penetrate deep into such areas near tears and tears?

+6
wolfram-mathematica
source share
1 answer

These are standard graphics.

enter image description here

enter image description here

And the circuit at 10 ^ -20

enter image description here

They are pretty clear to me.

Do you expect something more accurate?

Edit

If you want to use the option Contours → {0}, you can use:

enter image description here

+3
source share

All Articles