2016-11-19 133 views
0

我试图在Maple中绘制轮廓,但2d轮廓图输出并不漂亮。我想下面的命令:Maple中的轮廓图

with(plots): 
contourplot(-(1/2)*y^2-(1/2)*x^2-(1-.3)/sqrt((x+.3)^2+y^2)+((-1)*.3)/sqrt((x-1+.3)^2+y^2), 
      x = -1.5 .. 1.5, y = -1.5 .. 1.5, axes = boxed) 

和情节有比3D一个丑陋得多:

contourplot3d(-(1/2)*y^2-(1/2)*x^2-(1-.3)/sqrt((x+.3)^2+y^2)+((-1)*.3)/sqrt((x-1+.3)^2+y^2), 
       x = -1.5 .. 1.5, y = -1.5 .. 1.5, view = -2 .. -1.3, axes = boxed) 

有什么办法,我可以得到同样的细节在2D一个,因为在3d一个。

在此先感谢!

回答

1

通过在所需范围内提供(仅适量的)特定轮廓值,您可以获得有用的结果,而不会产生太多的计算成本。

请注意,在上面调用contourplot3d时,通过view选项指定了范围-2到-1.3。轮廓下方的范围为-2.5至-1.3。 (但它看起来与3D调用一样有用,范围从-2到-1.3)

基本问题是,对于少量轮廓级别的默认值,contourplot命令正在将它们大多数情况下这个范围并不能带来好的“均匀”传播。一个更昂贵的解决方案是简单地将轮廓数量增加到很高,例如contours=100。但是下面的调用只会产生13个轮廓等级。

plots:-contourplot(-(1/2)*y^2-(1/2)*x^2-(1-.3)/sqrt((x+.3)^2+y^2) 
        +((-1)*.3)/sqrt((x-1+.3)^2+y^2), 
        x=-2.25..2.25, y=-2.25..2.25, axes=boxed, 
        contours=[seq(-2.5..-1.3,0.1)], grid=[80,80], 
        coloring=["Niagara Azure","Orange"]); 

enter image description here