【发布时间】:2011-02-05 07:09:39
【问题描述】:
感谢this Yaroslav Bulatov 对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 深入到靠近中断和不连续的区域?
【问题讨论】:
-
嗯,我从 Stan Wagon 的书中得到了自适应绘图的详细信息,但它并没有过多地说明自适应 3D 绘图。您的特定示例似乎很特别,因为该函数永远不会超过 0 值,它只是“触及”它,我猜这就是 ContourPlot 找不到它的原因
-
强相关:“Problem with ContourPlot.”