640 likes | 1.16k Views
第二章 Mathematica 绘图. 2.1 Mathematica 绘图命令形式与绘图参数 2.1.1Mathematica 绘图命令的形式. Mathematica 绘图命令有如下一些常用形式: 绘一元函数 y = f (x) 的图形命令 : ( 举例 ) Plot[ f[x] , 要绘图形的自变量 x 的范围 , 选择项参数 ] 绘二元函数 z = f (x, y) 的图形命令 : ( 举例 ) Plot3D[ f [x, y] , 要绘图形的自变量 x , y 的范围 , 选择项参数 ]
E N D
2.1 Mathematica绘图命令形式与绘图参数2.1.1Mathematica绘图命令的形式 Mathematica绘图命令有如下一些常用形式: • 绘一元函数y = f (x) 的图形命令:(举例) Plot[ f[x] , 要绘图形的自变量x的范围 , 选择项参数] • 绘二元函数z = f (x, y)的图形命令: (举例) Plot3D[ f [x, y] , 要绘图形的自变量x , y的范围 , 选择项参数] • 绘平面参数曲线{ x= x(t) , y= y(t) }的图形命令: (举例) ParametricPlot[{x[t], y[t]} , 要绘图形的参数t的范围, 选择项参数] 下一部分
绘空间参数曲线{ x=x(t) , y=y(t), z=z(t) }的图形命令: ParametricPlot3D[{x[t],y[t],z[t]}, 要绘图形的参数t的范围 , 选择项参数] • 绘参数曲面{ x=x(u, v) , y=y(u, v), z=z(u, v) }的图形命令: ParametricPlot3D[{x[u,v], y[u,v], z[u,v]}, 要绘图形的参数u , v的范围, 选择项参数] • 绘平面点集图{x1,y1}, {x2,y2},, {xn,yn}散点图命令: ListPlot[{{x1,y1}, {x2,y2}, , {xn,yn} }, 选择项参数] • 绘平面等高线图 ContourPlot[ f [x, y] , 要绘图形的自变量x , y的范围 , 选择项参数] • 图形重画 Show[ 图形文件 , 选择项参数]
例2 :z [x_, y_]:=1/Sqrt[x^2+y^2]; Plot3D[z[x,y],{x,-2,2},{y,-2,2},PlotPoints ->30] 返回
n=5; r=5Cos[nt]+Sin[5nt]; tu1=Parametricplot[{rCos[t],rSin[t]},{t,0,2pi},AspectRatio->1, Axes->False,PlotStyle->{RGBColor[1,0,0],Thickness[0.01]}]; • 例3: 返回
例4: 利用图形显示命令分析下列函数的性质: (1)f(x)=(x2-x)sinx,x∈[0,16] (2)f(x)= , x∈[-5,5] (3)f1(x)=sinxf2(x)=sin2x,x∈[0,2π] (4)
结果图形 (2) Plot[Sin[x^2]/x^2,{x,-5,5}] (1) Plot[(x^2-x)Sin[x],{x,0,16}] (3) Plot[{Sin[x],Sin[2x]},{x,0,2Pi}] (4)ParametricPlot[{Sin[t],Sin[2t]},{t,0,2Pi}]
2.1.2常用的绘图选项参数名称、含义、取值 绘图命令中的选择项参数的形式为: 选项(option)参数名称 -> 参数值(value) • 一些常用的绘图选项列举如下: (1)选项参数名称: AspectRatio 含义:图形的高度与宽度比 参数取值:作为平面图形输参数值时, 该选项参数的默认值为1/GoldenRatio, 这里GoldenRatio是数学常数0.618; 作为空间图形参数值时,该选项参数的默认值为Automatic。AspectRatio 取Automatic值时, 表示图形按实际比例显示。 例:AspectRatio->Automaic, 表示显示的图形高度与宽度比由Mathematica 的内部算法根据函数图形的大小确定; AspectRatio->1, 表示显示的图形高度与宽度比是1:1。
(2)选项参数名称:Axes 含义: 图形是否有坐标轴 参数取值: 该参数的取值为True和None。 该选项参数的默认值为True 例:Axes-> True, 表示显示的图形有坐标轴; Axes-> None, 表示显示的图形没有坐标轴。 (3)选项参数名称:Frame 含义:平面图形是否加框 参数取值:该参数的取值为True和False。 该选项参数只用于平面图形,其默认值为False 例:Frame-> True, 表示显示的图形有框;Frame-> False, 表示显示的图形没有框。
(4) 选项参数名称:FrameLabel 含义:平面图形框的周围是否加标记 参数取值: 该参数的取值为None和{xb, yl, xt, yr}。 该选项参数只用于平面图形且在Frame->True时才有效,其默认值为None。 例:FrameLabel->{a,b,c,d}, 表示显示的图形框的四个边的标记由底边起按顺时针方向依次为a, b, c, d; FrameLabel-> None, 表示显示的图形框周围没有标记。 (5)选项参数名称:PlotLabel 含义:是否设置图形名称标记 参数取值:该参数取值为"字符串"和None, 默认值为None。 例: PlotLabel-> None, 表示没有图形名称标记, PlotLabel->"Bessel",使显示的图形上标出符号Bessel作为该函数图形名称。
(6)选项参数名称:AxesLabel 含义:是否设置图形坐标轴标记 参数取值:该参数的默认值为None;作为平面图形输出参数时, 该选项参数取值为 {“字符串1” , “字符串2”}, 表示将“字符串1”设置为横坐标轴标记,“字符串2”设置为纵坐标轴标记; 作为空间图形输出参数时, 该选项参数取值为{“字符串1” , “字符串2” , “字符串3”}, 表示将“字符串1”设置为横坐标标记,“字符串2”设置为纵坐标标记,“字符串3”设置为竖坐标标记。 例:AxesLabel-> None,表示显示的图形坐标轴没有标记; AxesLabel->{"time" , "speed"}, 表示平面图形的横坐标轴标记显示为time 纵坐标轴标记显示为speed; AxesLabel->{“时间”,“速度”,“高度”}, 表示空间图形的横坐标轴标记设置为时间, 纵坐标轴标记设置为速度, 竖坐标轴标记设置为高度。
(7) 选项参数名称:PlotRange 含义: 设置图形的范围 例: PlotRange->Automatic 表示用Mathematica 内部算法显示的图形。 PlotRange ->{1,8}, 表示只显示函数值在1 和8之间的平面曲线图形或空间曲面图形 PlotRange ->{{2,5},{1,8}}, 表示只显示自变量在2和5之间且函数值在1 和8之间的平面曲线图形; PlotRange ->{{2,5},{1,8},{-2,5}} 显示第一个自变量在[2,5]、第二个自变量在[1,8]且函数值在[-2,5]之间的曲面图形。 (8) 选项参数名称:PlotStyle 含义: 设置所绘曲线或点图的颜色、曲线粗细或点的大小及曲线的虚实等显示样式 参数取值: 与曲线样式函数的取值对应。
曲线样式函数有: • RGBColor[r, g, b]颜色描述函数,自变量r, g, b的取值范围为闭区间[0,1],其中r, g, b分别对应红(red)、绿(green)、蓝(blue)三种颜色的强度,它们取值的不同组合产生不同的色彩。 • Thickness[t]曲线粗细描述函数,自变量t的取值范围为闭区间[0,1],t的取值描述曲线粗细所占整个图形百分比,通常取值小于0.1。二维图形的粗细默认值为Thickness[0.004],三维图形的粗细默认值为 Thickness[0.001]。 • GrayLevel[t]曲线灰度描述函数,自变量t的取值范围为闭区间[0,1],t取0值为白色,t取1值为黑色。 • PointSize[r]点的大小描述函数,自变量r表示点的半径,它的取值范围为闭区间[0,1], 该函数的取值描述点的大小所占整个图形百分比,通常r取值小于0.01。二维点图形的默认值为PointSize[0.008],三维点图形的粗细默认值为PointSize[0.01]。 • Dashing[{d1,d2,…dn}]虚线图形描述函数, 虚线图周期地使用序列值{d1,d2, …, dn}, 在对应的曲线上采取依次交替画长d1实线段, 擦除长d2实线段,再画长d3实线段, 擦除长d4实线段, …, 的方式画出虚线图。
n=4; r=5Cos[nt]+2Sin[5nt]; tu2=ParametricPlot[{rCos[t],rSin[t]},{t,0,2Pi},PlotStyle->{RGBColor[0,0,1], Thickness[0.01]},AspectRatio->1]; • 举例: Show[tu1,tu2,Axes->False] (见右图)
ParametricPlot[{{x,x^2},{x^2,x},{x,x},{x,-3,3},Frame->True, FrameLabel-> {x,y}, FrameStyle->{RGBColor[0,0,0],Thickness[0.01]},Backgroud-> RGBColor[0,0,1],AspectRatio->1,AxesLabel->{x,y}, PlotRange->{{-2,2}, {-2,2}},PlotStyle->{{RGBColor[1,0,0],Thickness[0.02]}, {RGBColor[1,0,1], Thickness[0.02]}, {RGBColor[0,0,0],Thickness[0.01]}}] • 举例:
2.2 画一元函数图形 • 一元函数f(x)的图形是一条平面曲线,所以一元函数又称为曲线。一元函数绘图是最常用和最简单的绘图形式。 2.2.1 画一条曲线的命令 • 命令形式1:Plot[f[x], {x, xmin, xmax}] 功能:画出函数f(x) 的图形,图形范围是自变量x满足xmin x xmax的部分,其选择项参数值取默认值。 • 命令形式2:Plot[f[x], {x, xmin, xmax},option1->value1,option2->value2,…] 功能:画出函数f(x) 的图形,图形范围是自变量x满足xmin x xmax的部分,其选择项参数值取命令中的值。
2.2.2 在同一个坐标系画多条曲线的命令 • 命令形式1:Plot[{f1[x], f2[x],…, fn[x]},{x, xmin, xmax}] 功能:在同一个坐标系画出函数f1[x], f2[x],…, fn[x] 的图形,图形范围是自变量x满足xmin x xmax的部分,其选择项参数值取默认值。 命令形式2:Plot[{f1[x], f2[x],…, fn[x]}, {x, xmin,xmax},option1- >value1 ,…] 功能:在同一个坐标系画出函数f1[x], f2[x],…, fn[x]的图形,图形范围是自变量x满足xmin x xmax的部分,其选择项参数值取命令中的值
例1:画出函数y = sin x2 在-5 x 5 的图形。 解: Mathematica 命令: In[1]:= Plot[ Sin[x^2] , {x, -5, 5} ]
例2:画出函数y=sin x+x -3 x 25 的图形, 要求只显示其在平面区域[5,12][5,10]部分的图形,且为红色。 解:Mathematica 命令: In[2]:= Plot[ Sin[x] + x , {x, -3, 25} , PlotRange->{{5,12},{5,10}}, PlotStyle -> RGBColor[1,0,0]]
例3:在同一坐标系中画出三个函数y = cos 2x ,y = x 2 ,y = x的图形, 并给坐标横轴和纵轴分别标记为x和y,自变量范围为:-2 x 2 。 解:Mathematica 命令: In[3]:= Plot[{Cos[2x], x^2, x}, {x, -2, 2},AxesLabel->{"x" , "y"}]
例4:在同一坐标系中画出两个函数y = cos 2x ,y = x的图形,自变量范围为:-2 x 2,且函数y = cos 2x为红色实线, 线粗0.01, 函数y = x 为虚线。 解:Mathematica 命令: In[4]:=Plot[{Cos[2x],x},{x,-2,2}, PlotStyle->{{RGBColor[1,0,0],Thickness[0.01]},{Dashing[{0.05,0.02}]}}]
例5:画出5次勒让德多项式LegendreP[5,x] 的图形 , 自变量范围为:-1 x 1,且函数图形四周加框,并在图形上标出函数名称。 解:Mathematica 命令: In[5]:= Plot[LegendreP[5,x], {x,-1,1}, Frame->True, PlotLabel->"LegendreP[5,x]"]
2.3 画二元函数图形 命令形式1: Plot3D[ f[x, y] , {x, xmin , xmax}, {y, ymin , ymax} ] 功能:画出函数f(x, y) 的自变量(x, y)满足xmin x xmax, ymin y ymax的部分的曲面图形,其选择项参数值取默认值。 命令形式2: Plot3D[ f[x, y] , {x, xmin , xmax}, {y,ymin , ymax}, option1->value1,… ] 功能:画出函数f(x, y) 的自变量(x, y)满足xmin x xmax, ymin y ymax的部分的曲面图形。
常用的几个空间曲面绘图选项参数名称、含义简单列表如下:常用的几个空间曲面绘图选项参数名称、含义简单列表如下:
例6:画出函数z = sin (x+sin y) 在-3 x 3 , -3 y 3 上的图形 • 解:Mathematica 命令: • In[6]:= Plot3D[ Sin[x+Sin[y]] , {x, -3, 3} ,{y, -3, 3}]
例7:画出例6的曲面图形, 要求显示视点在图形前上方位置观察的曲面效果。解:Mathematica 命令: In[7]:= Plot3D[Sin[x+Sin[y]], {x, -3, 3}, {y, -3, 3}, ViewPoint->{0, -2, 2} ];
2.4画平面参数曲线图形 • 命令形式1: ParametricPlot[ {x[t], y[t]} , {t, tmin , tmax}, option1->value1,… ] 功能:画出平面参数曲线方程为x=x(t) ,y=y(t)满足tmin t tmax的部分的一条平面参数曲线图形。 • 命令形式2:ParametricPlot[{{{x1[t], y1[t]}, {x2[t], y2[t]},…}, {t, tmin, tmax}, option1->value1,…}] 功能:在同一个坐标系中画出一组平面参数曲线,对应的参数曲线方程为x1=x1(t) ,y1=y1(t); x2= x2(t) ,y2=y2(t);…,t满足tmin t tmax。
例8:画出半径为4的圆的图形。 解:由于圆为封闭曲线,故应该用参数绘图命令来画。 半径为4的圆的参数方程为: x=2cos t, y=2 sin t, 0 t 2 Mathematica 命令: In[8]:= ParametricPlot[{2Cos[t], 2Sin[t]} , { t, 0, 2Pi}]; 该命令画出的不是圆而是椭圆的原因是由于ParametricPlot[]的命令中的图形高宽比参数AspectRatio的默认值为1:0.618造成的, 要显示出真正的圆应该把AspectRatio设置为Automatic即AspectRatio->Automatic
此时对应的命令为: In[9]:= ParametricPlot[{2Cos[t], 2Sin[t] } , {t, 0 , 2Pi}, AspectRatio->Automatic];
例9:在同一坐标系中画出如下两条参数曲线, 参数曲线方程为 x1= cos t ,y1= sin t; x2= sin t ,y2= sin 2t; t满足0 t 2 • 解:Mathematica 命令: In[10]:=ParametricPlot[{{Cos[t],Sin[t]},{Sin[t],Sin[2t]}}, {t,0,2Pi}];
空间参数曲线的方程为x= x(t) ,y= y(t), z= z(t), 参数t连接了变量x,y,z的函数关系,Mathematica提供了空间参数曲线绘图功能。 • 命令形式: ParametricPlot3D[{x[t], y[t], z[t]} , {t, tmin , tmax}, option1->value1,… ] 例10:画出如下空间曲线,参数曲线方程为 x= cos t ,y = sin t, z = 1/ t , t满足0.1 t 1.5 解:Mathematica 命令: In[11]:= ParametricPlot3D[{Cos[t], Sin[t], 1/t }, {t, 0.1, 9} ];
2.6 画参数曲面图形 • 参数曲面的方程为: x=x(u,v), y=y(u,v), z=z(u,v), u[u0,u1], v[v0,v1]; • 命令形式: ParametricPlot3D[{x[u, v], y[u, v], z[u, v]}, {u, umin, umax}, {v, vmin, vmax}, option1- >value1,… ] • 功能:画出参数曲面方程为 x=x(u,v), y=y(u,v), z=z(u,v), u[umin,umax], v[vmin,vmax] 部分的参数曲面图形,如果不选选择项参数, 则对应的选择项值取默认值。
例11画出参数曲面方程为x=cosh (u) cos (v) ,y= cosh(u) sin(v), z = u , 满足-2 u 2, 0 v 2的参数曲面图形解:Mathematica 命令: In[12]:=ParametricPlot3D[ { Cosh[u]*Cos[v], Cosh[u]*Sin[v], u }, {u, -2, 2}, {v, 0, 2 Pi} ]
例12:画出单位球面图形解: 单位球面的参数曲面方程为x= cos (t) cos(u) ,y= sin(t) cos(u), z = sin(u ), 满足0 u 2, 0 v 2Mathematica 命令为: In[13]:=ParametricPlot3D[{Cos[t]Cos[u],Sin[t]Cos[u],Sin[u]},{t,0,2Pi},{u,0,2Pi}]
例13:画出参数曲面方程为x=u cos(u) (4+cos(v+u)) ,y=u sin(u) (4+cos(v+u)), z = usin(v+u) , 满足0 u 4, 0 v 2的参数曲面图形, 图形的取点数为x方向60个点y方向12个点解: Mathematica 命令为: In[14]:=ParametricPlot3D[{u*Cos[u]*(4+Cos[v+u]), u*Sin[u]*(4+Cos[v+u]), u*Sin[v+u]},{u,0,4 Pi},{v,0,2 Pi}, PlotPoints->{60,12} ]
2.7 画平面散点图 • 命令形式1:ListPlot[{{x1, y1}, {x2, y2}, …, {xn, yn} }, option1->value1,…] • 功能:在直角坐标系中画出点集{x1, y1},{x2, y2}, …,{xn, yn}的散点图,如果没有选择项参数, 则选择项值取默认值 命令形式2:ListPlot[{y1,y2,…,yn} , option1->value1,…] • 功能:在直角坐标系中画出点集{1,y1},{2,y2},…,{n, yn}的散点图,如果没有选择项参数, 则选择项值取默认值 命令形式3: ListPlot[{ {x1, y1}, {x2, y2}, …, {xn,yn} } ,PlotJoined->True] • 功能:将所输入数据点依次用直线段联结成一条折线。 • 注意:命令中的选择项参数及其取值同于一元函数绘图, 如果画出的散点图的点太小,可以用选择项参数PlotStyle->PointSize[r]增大散点图的点, r表示点的半径, 一般取<0.1的值。
例14:画出由函数Table[x^3, {x, 0, 5, 0.2}] 产生的二维点图解:Mathematica 命令: In[15]:= t= Table[x^3, {x, 0, 5, 0.2}]; ListPlot[ t, PlotStyle ->{ RGBColor[0, 1, 0], PointSize[0.08] } ]
例15:已知科学家在某海域观察到海平面的年平均高度表如下,由表的数据绘制出二位数据点图,并画出其折线图。 年份 1 2 3 4 5 6 7 8 9 10 11 12 13 海拔 5.0 11.0 16.0 23.0 36.0 58.0 29.0 20.0 10.0 8.0 3.0 0.0 0.0 年份 14 15 16 17 18 19 20 21 22 23 24 25海拔 2.0 11.0 27.0 47.0 63.0 60.0 39.0 28.0 26.0 22.0 11.0 21.0 解:应用Mathematica画二维点图的命令,并且因为年份是从1到25,输入命令行: ln[16]:= f=ListPlot[{5.0,11.0,16.0,23.0,36.0,58.0,29.0,20.0,10.0,8.0,3.0,0.0,0.0, 2.0,11.0,27.0, 47.0,63.0,60.0,39.0,28.0,26.0,22.0,11.0,21.0} PlotStyle- >PointSize[0.05], AxesLabel->{年份,海拔}] *画散点图
In[17]:= g= ListPlot[{5.0,11.0,16.0,23.0,36.0,58.0,29.0, 20.0,10.0,8.0,3.0,0.0,0.0, 2.0,11.0,27.0, 47.0,63.0,60.0,39.0,28.0,26.0,22.0,11.0,21.0}, PlotJoined->True, AxesLabel->{年份,海拔}] *做折线图(左) Show[f, g] *散点图和折线图显示在一起(右)
例16:画出在[0,1]取值的随机函数所产生的21个随机点的散点图解:Mathematica 命令: In[19]:= data=Table[Random[], {i, 0, 20}]; ListPlot[data, PlotStyle ->PointSize[0.05]]
2.8 画平面等高线图 • 二元函数z = f (x,y) 在z取均匀间隔数值所对应的平面等值线系列构成该函数的等直线图。从等直线图可以了解该二元函数特性。Mathematica的绘制平面等高线图的命令为: 命令形式: ContourPlot[ f[x, y] , {x, xmin , xmax}, {y,ymin , ymax}, option1->value1,… ] • 功能:画出二元函数z = f(x,y) 当z取均匀间隔数值所对应的平面等值线图, 其中变量(x,y)满足xmin x xmax, ymin y ymax,如果不选选择项参数, 则对应的选择项值取默认值。 • 注意:命令中的xmin, xmax, ymin, ymax应该是具体的数字或可以计算出数值的表达式, 该命令只能画在矩形区域上的二元函数等高线图。此外, 该命令的选项参数除了同于Mathematica的平面曲线绘图的选项外, 还有如下的常用选项:
例17:画出函数z = x 2+y 2 在区域[-2,2][-2,2]上具有15条等值线的图形, 不使用阴影效果解: In[20]:= ContourPlot[x*x+y*y, {x,-2,2},{y,-2,2}, ContourShading->False,Contours->15]
2.9 用图形元素作图 • 图元作图分二维图元作图和三维图元作图。 (1) 二维图元作图 • 二维图元作图需要先用Graphics[二维图形元素表]函数得到图形文件, 然后再用图形显示命令Show [图形文件]的形式显示完成的二维图形。常用的二维图形元素有(见表) 命令形式:Show[Graphics[二维图形元素表] , option1->value1,… ] 功能:画出由二维图形元素表组合的图形。 注意: 可以在二维图形元素表中加入修饰图元的函数。 Graphics[…]称为图形文件。
例17:画出端点在{-1,-1},{1,-2}的虚线段 解:In[21]:=Show[Graphics[{Dashing[{0.05, 0.01}], Line[{{-1, -1}, {1, -2}}] }] ] 一般图元表{Dashing[{r1,r2,r3,r4,…}], Line[{p1,p2}]}表示在直线Line[{p1,p2}]上依次取长r1实线段, 擦除长r2实线段, 取长r3实线段,擦除长r4实线段的周期形式画出虚线段。
例18:画出中心和长短半轴满足公式,{3n,0},{n/4,2-n/4}], n=1,2,3,4的四个椭圆盘图形 (左图)解:In[21]:=Show[Graphics[Table[ Disk[{3n,0},{n/4,2-n/4}],{n,4}]], AspectRatio->Automatic] 例19:画出在区域[0,1][0,1]内的8个随机游动点的折线图,并在图中给出文本标记(右图) 解: In[22]:= t=Table[{Random[],Random[]},{i,1,8}]; In[23]:= Show[Graphics[{Line[t],Text["Random move",{0.5, 1}]}]]
(2)三维图元作图三维图元作图需要先用Graphics3D[三维图形元素表]函数得到图形文件,然后再用图形显示命令Show [图形文件]的形式显示完成的三维图形。命令形式: Show[Graphics3D[三维图形元素表] , option1->value1,… ]功能:画出由三维图形元素表组合的图形,其选择项参数及取值同于空间绘图参数常用的三维图形元素中有:
2.10 图形的重画 • 在每次执行绘图命令后,会看到在图形下面的输出行显示出一行字母 “-Graphics-”,这意味着执行绘图命令后还产生了一个图形文件。你可以用命令InputForm[%输出行号]察看该绘图文件的内容。例如: • In[24]:=ListPlot[Table[x*Sin[x], {x, 0, 3, 0.2}], PlotStyle->PointSize[0.03]]