查看原文
其他

用Mathematica处理函数间断点、线处的曲线曲面图形

刘雄伟 考研竞赛数学 2024-04-26

为了直观了解函数间断点、线处的特征,我们希望能够在图形中明确相应位置对应的图形特征。虽然Mathematica在绘制图形时对于间断点处有相应的线显示,但是很多时候并不是我们需要的显示效果,而且与函数对应的曲线、曲面图形没有明显的特征区别。为解决这样的问题,Mathematica提供了两个绘图设置选项,分别为Exclusions和ExclusionsStyle来指定位置与设置样式。

比如默认设置下绘制正切函数tanx的图形的Mathematica表达式为

Plot[Tan[x], {x, -3 Pi, 3 Pi}]

执行后显示的图形如下:


显然其中的竖线不是正切函数的图形。这不是我们希望的结果,cosx=0的点为函数的间断点。因此我们给以上的绘图表达式添加Exclusions选项去掉竖线图形。即有Mathematica表达式为

Plot[Tan[x],{x, -3 Pi, 3 Pi}, Exclusions -> Cos[x] == 0]

执行后显示的图形如下:

但是,为了观察函数图形的特征,有时候我们还希望它能显示,只是与原函数曲线具有不同的样式,这时就可以进一步通过设置ExclusionsStyle选项来更改显示样式。对应的Mathematica表达式为:

Plot[Tan[x],{x,-3Pi,3Pi},Exclusions->Cos[x]==0,ExclusionsStyle->Directive[Dashed,Red]]

执行后显示的图形如下:


以上方法也适用于自定义函数,比如输入如下表达式

f[x_] := If[1 <= x, 1, -1];

Plot[f[x], {x, -1, 3}, Exclusions -> x == 1, ExclusionsStyle-> Red]

执行后的图形显示如下:


对于有些函数可以不指定剔除位置,直接可以通过设置剔除位置图形样式设置对应图形的样式,比如取整函数Floor。在Mathematica中输入表达式

Plot[Floor[x],{x, -3, 3}, ExclusionsStyle -> Directive[Thick, Dotted, Red]]

执行后的结果为


对于三维图形的绘制也有同样的设置方式,比如输入如下表达式:

Plot3D[Im[ArcSin[(x + I y)^4]], {x, -2, 2}, {y, -2, 2}, Mesh -> None, ExclusionsStyle -> {{Opacity[1/4], Blue}, {Thick, Blue}},  Boxed -> False, Axes -> False]

执行后的结果如下:

其中ExclusionsStyle可以设置剔除区域的样式,柱面图形的样式,图中半透明蓝色区域;第二个用来设置边界线样式,即蓝色的边界线。

另外,对于三维曲面图形,通过设置这两个旋转可以让图形效果更好,更直观与真实。以下两个图形分别是添加与不添加相关选项用Mathematica输出的图形效果。



其中第一个图形的Mathematica表达式为

Plot3D[ ArcTan[x/(x^2 + y^2 - 1)], {x, -2, 2}, {y, -2, 2}, 

 PlotStyle -> Directive[Orange, Specularity[White, 10], Opacity[0.7]],

 Mesh -> None, Exclusions -> {(x^2 + y^2 - 1) == 0}, ExclusionsStyle -> {None, {AbsoluteThickness[1.25], Blue, Dashed}}, ImageSize -> Medium]

图形为剔除分母为0位置图形的效果,并且设置剔除变量对应的柱面图形样式为None,即不显示图形。

第二个图形的Mathematica表达式为:

Plot3D[ArcTan[x/(x^2 + y^2 - 1)], {x, -2, 2}, {y, -2, 2}, PlotStyle -> Directive[Orange,   Specularity[White, 10], Opacity[0.7]], Mesh -> None, PlotPoints -> 100]

既使设置了PlotPoints采样点为100,图形效果也不尽人意,不能有效表现出函数的特征。


以上内容由WolframBlogs:AndrewMoylan, Technical Communication & Strategy回答提问给出的答案翻译、改编、扩充、整理,原文地址请点击文章下面左侧的“阅读原文”。

继续滑动看下一个
向上滑动看下一个

您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存