24小时热门版块排行榜    

CyRhmU.jpeg
查看: 1846  |  回复: 1

kabaisun

专家顾问 (正式写手)

[求助] mathematica中contourplot绘图时自变量取值区间有间断点怎么处理?已有1人参与

以下代码画出流网时,因为变量的取值区间包含使算式的分母为零的点,出图效果不佳,请问绘图区间应该如何调整?还是有其它的设置可以避免计算分母为零的点?除了把一张图分两张图来画的方法。

z1 = -(qv *0.5*Log[x^2 + y^2] - tao ArcTan[y/x])/(2 Pi);
z2 = -(qv*ArcTan[y/x] + 0.5*tao *Log[x^2 + y^2])/(2 Pi);
qv = 1; tao = 1;
ContourPlot[{z1}/50, {x, -10, 10}, {y, -10, 10},
ContourStyle -> {Red}, Frame -> False, Axes -> True,
ContourShading -> None, PlotLegends -> {"\[Psi](x,y)"}]
ContourPlot[{z2}/50, {x, -10, 10}, {y, -10, 10},
ContourStyle -> {Dashed}, Frame -> False, Axes -> True,
ContourShading -> None, PlotLegends -> {"\[Phi](x,y)"}]
Show[%%, %]

mathematica中contourplot绘图时自变量取值区间有间断点怎么处理?
平面无旋流叠加图.png
回复此楼
严实诚勇
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

xzczd

木虫 (小有名气)

【答案】应助回帖

★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★
感谢参与,应助指数 +1
kabaisun: 金币+15, ★★★★★最佳答案, 学习了,很感谢! 2015-01-07 20:42:27
增加选项Exclusions -> {x == 0}即可,如果觉得间隙还是大那就把点数增加一点:
CODE:
contour[expr_, color_] :=
ContourPlot[expr, {x, -10, 10}, {y, -10, 10}, ContourStyle -> color,
  ContourShading -> None, Exclusions -> {x == 0}, PlotPoints -> 50]
z1 = -(qv*0.5*Log[x^2 + y^2] - tao ArcTan[y/x])/(2 Pi);
z2 = -(qv*ArcTan[y/x] + 0.5*tao*Log[x^2 + y^2])/(2 Pi);
Show@MapThread[contour, {{z1, z2}/50, {Red, Dashed}}] /.
Graphics[a__] :>
  Legended[Graphics[a],
   Placed[LineLegend[{Red, Dashed}, {"\[Psi](x,y)", "\[Phi](x,y)"}],
    After]]

mathematica中contourplot绘图时自变量取值区间有间断点怎么处理?-1
未命名-2.png

小木虫Mathematica版块已毁(当然原本也不咋的),建议大家前往百度贴吧或Stackexchange。
2楼2015-01-07 18:07:19
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 kabaisun 的主题更新
信息提示
请填处理意见