实验三函数图形绘制.docx
《实验三函数图形绘制.docx》由会员分享,可在线阅读,更多相关《实验三函数图形绘制.docx(30页珍藏版)》请在冰豆网上搜索。
实验三函数图形绘制
实验三:
函数图形绘制
1、实验目的:
学习在Mathmatica系统下绘制一元、二元函数图形的基本方法,学会使用Plot、ListPlot、Plot3D、ParametricPlot四个作图函数,了解用选择项进行修饰的初步方法,学会使用Show函数进行图形组合
2、实验指导:
一、二维图形
1.一元函数的图形
在平面直角坐标系中绘制函数y=f(x)的图形的函数是Plot,其调用格式如下:
Plot[f(x),{x,a,b}]绘制函数f(x)在区间[a,b]范围内的图形。
Plot[{f1(x),f2(x),…},{x,a,b}]同时绘制多个函数的图形。
例1绘制如图所示函数y=sinx和y=cosx在[-π,π]上的图形。
解:
In[1]:
=Plot[{Sin[x],Cos[x]},{x,-π,π}]
Out[1]=-Graphics-
这个绘图函数的自动化程度很高,能自动选取若干个xi求出函数值yi=f(xi),再将点(xi,yi)连接起来得到曲线。
且能自动绘制坐标轴,自动选取单位长度和刻度。
这使画图工作变得非常简单,已经能满足一般要求。
如果用户对输出的图形不满意,还有很多可选参数供选用,以便提高图形的输出质量,可选参数的使用方法将在后面介绍。
与同类软件MATLAB和Mathcad比较,不仅语句简单,而且输出的图形外观也基本符合我国教科书的习惯。
当给出的不是一个能直接将xi代入求出yi的函数表达式时,会出问题。
例如:
In[1]:
=
Out[1]=
In[2]:
=Plot[
,{x,-4,4}]
被画图的函数使用表达式∫xdx时,Plot并不首先求出
=
来,而是直接将一些具体数值xi代入求
,当然出错,这时Mathematica绘图失败并给出一长串的错误提示。
使用函数Plot时,这是最大的常见错误。
解决的办法是使用函数Evaluate[f],告知Mathematica首先求表达式f的值。
例2使用函数Evaluate绘制如图所示积分
在[-4,4]上的图形。
解:
In[1]:
=Plot[Evaluate[
],{x,-4,4}]
Out[1]=-Graphics-
In[2]:
=Evaluate[
]
Out[2]=
说明:
这里首先求出∫xdx=
,再执行绘图过程,后面还会看到使用这种转换方法画出微分方程数值解的图形。
2.可选参数
Mathematica的许多函数都有可选参数,绘图函数的可选参数很多,可以在需要时再学习。
以下介绍Plot的常用可选参数(有些是绘图函数通用的),它们体现了Mathematica绘图功能的完善程度。
可选参数分成两类:
第一类参数能改变图形的外观,但不影响图形自身的质量;第二类参数则影响图形自身的质量。
可选参数的形式为:
可选项名→可选项值,当不使用可选参数时,该参数取默认值。
(1)第一类可选参数
第一类可选参数有以下几种。
●PlotRange指定绘图的范围。
它的可选值是:
Automatic由Mathematica自动选取范围切除无穷值点和尖峰(默认值)。
All画出所有点。
{min,max}给出y(三维为z)轴方向的取值范围。
{{x1,x2},{y1,y2}}分别给出x,y(三维加z)轴方向的取值范围。
例3使用可选参数PlotRange绘制如图所示函数y=tg(x)的图形。
解:
In[1]:
=Plot[Tan[x],{x,-3,3},PlotRange→{-10,10}]
Out[1]=-Graphics-
●AspectRatio指定图形的高宽比。
它的可选值是:
默认值为0.618(黄金分割),准确值是1/GoldenRatio,其中GoldenRatio=
是一个Mathematica常数。
如果取Automatic,则高宽比为1,还可以取任何正数。
如果不设置这个参数,则圆变成椭圆,设此参数值为Automatic则可解决问题。
例4使用可选参数AspectRatio绘制如图所示的圆x2+y2=1。
解:
In[1]:
=Plot[{
,-
},{x,-1,1},AspectRatio→Automatic]
Out[1]=-Graphics-
●Axes用于指定是否显示坐标轴。
它有三个值:
True(或Automatic)表示画出坐标轴(默认值)。
False表示不画出坐标轴。
{True,False}或{False,True}只画出一个轴。
●AxesOrigin用于指定两个坐标轴的交点坐标。
它有两种选择:
Automatic由Mathematica自动选择,但可能不在(0,0)点(默认值)。
{x,y}给出交点坐标。
例5使用可选参数AxesOrigin绘制如图所示函数y=sinx的图形。
解:
In[1]:
=Plot[Sin[x],{x,0,2π},AxesOrigin→{π,0}]
Out[1]=-Graphics-
●AxesLabel用于给坐标轴加上标记(说明性字符串)。
它有三个值。
None没有标记(默认值)。
“字符串”给y(三维为z)轴加上标记。
{“字符串1”,“字符串2”}分别给出x,y(三维加z)轴的标记。
例6给坐标轴加上标记绘制如图所示函数
的图形。
解:
In[1]:
=Plot[Exp[-x^2],{x,-2,2},AxesLabel→{″x″,″y″}]
Out[1]=-Graphics-
提示:
字符串要用双引号括起来,内容可以是Mathematica能够显示的任何表达式。
●Ticks用于给坐标轴加上刻度或给坐标轴上的点加标记。
常用的选项值为:
Automatic由Mathematica自动加上刻度(默认值)。
None不加刻度。
{{x1,x2,…},{y1,y2,…}}在横轴上的点x1,x2,…和纵轴上的点y1,y2,…处加上刻度。
{{x1,“字符串1”},{x2,“字符串2”},…},{{y1,“字符串1”},{y2,“字符串2”},…}}在横轴上的点x1,x2,…和纵轴上的点y1,y2,…处写上字符串。
例7给横轴上的点加标记,绘制如图所示函数y=sinπx的图形。
解:
In[1]:
=Plot[Sin[πx],{x,0,3},
Ticks→{{{1/2,“t1”},1,{3/2,“t2”},2,{5/2,“t3”},3},
Automatic}]
Out[1]=-Graphics-
说明:
由上例可以看出,各种可选值能混合使用。
这个选项也可用于三维绘图。
●AxesStyle用于设置坐标轴的颜色、线宽等选项。
它的值为:
{选项1,选项2,…}对所有轴设置相同的选项。
{{x轴选项1,x轴选项2,…},{y轴选项1,y轴选项2,…}分别对各轴设置不同的选项。
例8设置坐标轴的颜色和线宽,绘制如图所示函数
的图形。
解:
In[1]:
=Plot[1/(1+x^2),{x,-5,5},
AxesStyle→{RGBColor[0,0,1],Thickness[0.01]}]
Out[1]=-Graphics-
说明:
上例中设置了坐标轴的颜色(蓝色)和线宽,这些选项的含义将在后面介绍。
这个选项也可用于三维绘图。
●Frame用于给图形加框。
它的值为:
False不加框(默认值)。
True加框。
例9加框绘制如图所示函数y=sinx2的图形。
解:
In[1]:
=Plot[Sin[x^2],{x,0,3},Frame→True]
Out[1]=-Graphics
●GridLines用于加网格线。
它的值为:
None不加网格线(默认值)。
Automatic由Mathematica自动加上网格线。
{{x1,x2,…},{y1,y2,…}}在横轴上的点x1,x2,…和纵轴上的点y1,y2,…处加上网格线。
例10加上网格线绘制如图所示函数y=lnx+sin(x+
sinx)的图形。
解:
In[1]:
=Plot[Log[x]+Sin[x+
Sin[x]],{x,0,10},
GridLines→Automatic]
Out[1]=-Graphics-
●Background用于指定背景颜色。
可以使用多种颜色模式,常用选项是:
Automatic实际颜色与Windows的窗口颜色一致,但利用Mathematica的直接打印功能输出时是白色的(默认值)。
GrayLevel[k]其中k是0到1之间的数,给出灰度大小,0为黑色,1为白色。
RGBColor[r,g,b]其中r,g,b是0到1之间的数分别表示红、绿、蓝色的强度,[1,1,1]为白色,[0,0,0]为黑色,[1,0,0]为红色。
例11设置背景颜色绘制如图所示函数y=ex的图形。
解:
In[1]:
=Plot[Exp[x],{x,-1,1},Background→RGBColor[1,1,1]]
Out[1]=-Graphics-
Mathematica提供了设置颜色的简便方法,单击Mathematica菜单Input中的第三项ColorSelector,可以打开颜色选择对话框。
这是一个标准的Windows颜色选择对话框,单击对话框左边的一种基本颜色或者利用对话框右边的色框自定义一种颜色,然后单击确定按钮退出,则在当前工作区的光标处自动写出如RGBColor[0.996109,0.996109,0.500008]的表达式,表示刚才选中的颜色。
●PlotLabel用于在图形上方居中加注释。
它的值为:
None没有注释(默认值)。
“字符串”用双引号括起来的字符串。
例12加上注释绘制如图所示函数y=x2sinx的图形。
解:
In[1]:
=Plot[x2Sin[x],{x,0,2π},PlotLabel→“y=x2Sinx”,
AxesLabel→{“x”,“y”}]
Out[1]=-Graphics-
(2)第二类可选参数
第二类可选参数有以下几种:
●PlotStyle用于规定曲线的线型和颜色。
常用值是:
Automatic曲线是黑色实线(默认值)。
GrayLevel[k]指定曲线的灰度k。
RGBColor[r,g,b]指定曲线的颜色。
PointSize[d]其中d是点的直径与整个图形宽度之比(二维时默认值为0.008,三维时默认值为0.01)。
Thickness[r]其中r是线的宽度与整个图形宽度之比(二维时默认值为0.004,三维时默认值为0.001)
Dashing[{r1,r2,…}]交替使用数r1,r2,…作为线段和空白的相对长度画虚线(其中r1,r2,…是远远小于1的数,整个图形宽度为1)。
例13使用不同颜色和线宽绘制如图所示函数y=sinx和y=sin2x的图形。
解:
In[1]:
=Plot[{Sin[x],Sin[2x]},{x,-π,π},
PlotStyle→{{Thickness[0.02],RGBColor[1,0,0]},RGBColor[0,0,1]}]
Out[1]=-Graphics-
说明:
上例表明可以对两条曲线分别指定参数值,第1条曲线给出线宽和颜色(红色),而第2条只给出颜色(蓝色),这样参数可以灵活组合。
下面的例子示范了画虚线时参数的设置法。
例14绘制如上图所示的虚线。
解:
In[1]:
=Plot[x,{x,-π,π},
PlotStyle→{Dashing[{0.04,0.02,0.01,0.02}]}]
Out[1]=-Graphics-
提示:
将上例中的虚线参数表与图形对照,各数据的含义就十分清晰了。
●PlotPoints规定绘图时取的最少点数。
它的默认值是25,画一条变化剧烈的曲线应该增大点数。
例15绘制如图所示的变化剧烈的曲线。
解:
In[1]:
=Plot[Sin[1/x],{x,0.04,1},PlotPoint→50]
Out[1]=-Graphics-
还有些第二类可选参数不好把握,这里就不介绍了。
有兴趣的读者可以参看Help,自己进行探索。
3.二维参数图
曲线方程由参数形式给出是很常见的,绘制平面参数式曲线的函数是ParametricPlot,其调用格式如下:
ParametricPlot[{x(t),y(t)},{t,a,b}]其中t的取值范围是区间[a,b]。
ParametricPlot[{{x1(t),y1(t)},{x2(t),y2(t)},…},{t,a,b}]同时画出多条曲线。
这个函数能添加与Plot一样的可选参数。
例16绘制如图所示的星形线
。
解:
In[1]:
=ParametricPlot[{Cos[t]^3,Sin[t]^3},{t,0,2π},
AspectRatio→Automatic]
Out[1]=-Graphics-
Mathematica没有专门画极坐标图形的内部函数(图形扩展程序包中有),因此应该先转换成参数式:
x(θ)=r(θ)cos(θ),y(θ)=r(θ)sin(θ)。
4.绘制散点图
用一个表给出点列中各点的坐标,函数ListPlot用于绘制散点图,其调用格式如下:
ListPlot[{y1,y2,…}]画出点列(1,y1),(2,y2),…。
ListPlot[{{x1,y1},{x2,y2},…}]画出点列(x1,y1),(x2,y2),…。
这个函数还有可选参数PlotJoined,用于将各点用线段顺序连接起来,画出折线图,它的值为:
False不连接(默认值)。
True连接各点。
例17绘制如图所示的散点图和如图所示的折线图。
解:
In[1]:
=ListPlot[Table[{x,Sin[x]},{x,-π,π,0.2}]]
Out[1]=-Graphics-
In[2]:
=ListPlot[Table[{x,Sin[x]},{x,-π,π,0.2}],
PlotJoined→True]
Out[2]=-Graphics-
说明:
添加参数PlotJoined则得到如图所示的曲线。
5.等值线图和密度图
(1)等值线图
等值线图用灰度表示函数值的大小,越亮的地方函数值越大,绘制函数z=f(x,y)等值线图使用函数:
ContourPlot[f,{x,xmin,xmax},{y,ymin,ymax}]其中f是二元函数的表达式。
(2)密度图
密度图也用灰度表示函数值的大小,越亮的地方函数值越大,这与等值线图类似。
绘制密度图的函数是:
DensityPlot[f,{x,xmin,xmax},{y,ymin,ymax}]其中f是二元函数的表达式。
6.外部绘图函数
Mathematica绘制二维图形的内部函数缺少一些功能,如绘制极坐标图形、直方图和向量场等。
但是Mathematica带有绘图程序包,它们在标准扩展程序包子集Graphics中。
程序文件Graphics的绘图功能花样繁多,不能一一列举,可以通过查看Help,从中找到所需的外部函数及其范例。
二、三维图形
Mathematica在绘制三维图形方面功能很强,能满足实际需要。
下面使用绘制参数曲面、旋转曲面的函数,绘制了一些高等数学中的实用曲面,表明Mathematica的绘图功能很有实用价值。
1.二元函数图形
(1)绘制二元函数图形的函数
在空间直角坐标系中绘制二元函数z=f(x,y)所表示的曲面的函数是Plot3D,其调用格式如下:
Plot3D[f,{x,xmin,xmax},{y,ymin,ymax}]其中二元函数f的定义域是一个矩形区域。
Plot3D[{f,s},{x,xmin,xmax},{y,ymin,ymax}]这里s是着色表达式用于给曲面着色。
例18绘制如图所示的二元函数z=x2siny的图像。
解:
In[1]:
=Plot3D[x^2Sin[y],{x,-1,1},{y,0,π}]
Out[1]=-SurfaceGraphics-
说明:
Mathematica将二元函数f(x,y)的矩形定义域分割成小矩形,计算各个小矩形顶点(xi,yj)处的函数值zij=f(xi,yj),得到曲面上点(xi,yj,zij),顺次连接这些点就得到曲面的近似图形。
为了使图形更生动,Mathematica使用位于右上方的三个不同颜色的光源照射曲面,并且在不同的高度处使用不同的灰度。
例19使用着色表达式绘制如图所示的二元函数z=sinxy的图形。
解:
In[1]:
=Plot3D[{Sin[xy],RGBColor[1,0,1]},{x,0,3},{y,0,3}]
Out[1]=-SurfaceGraphics-
说明:
在上例中将着色表达式s设置为RGBColor[1,0,1],结果画出一个紫色曲面,这时光源不起作用。
一般可以设置s随曲面上点的坐标变化,使曲面上各处有不同的颜色。
(2)可选参数
函数Plot3D有以下可选参数。
●Boxed说明是否给图形加立体框。
它的值为:
True加立体框(默认值)。
False不加立体框。
●BoxRatios[rx,ry,rz]给出3个方向上的长度比,默认值为[1,1,0.4]。
●Mesh说明在曲面上是否画网格。
它的值为:
True画网格(默认值)。
False不画网格。
例20使用可选参数绘制如图所示的二元函数z=x2siny的图形。
解:
In[1]:
=Plot3D[x^2Sin[y],{x,-1,1},{y,0,π},
Mesh→False,Boxed→False]
Out[1]=-SurfaceGraphics-
●HiddenSurface说明是否隐藏曲面被遮住的部分。
它的值为:
True隐藏(默认值)。
False不隐藏。
●Shading说明是否在曲面上按函数值大小涂灰色(或彩色)。
它的值为:
True曲面上涂色(默认值)。
False只有曲面网格线,曲面为白色。
●ColorFunction决定曲面用灰度还使用彩色涂色。
●FaceGrids用于添加坐标网格线。
它的值为:
None没有坐标网格线(默认值)。
All由Mathematica自动在立体框的6个面上添加坐标网格线。
{face1,face2,…}指定6个面中的那些面添加网格线(其中face1等表示由3个数组成的表,例如{0,0,-1}表示底面、{0,0,1}表示顶面,3个数必须有两个是0,另一个为1或-1)。
{{face,{表1,表2},…}其中表1和表2分别指定两个坐标轴上网格线的坐标值。
●Lighting说明是否打开光源。
默认值为True,当曲面上按函数值大小涂灰色时,曲面由于反光而呈现色彩。
如果曲面上按函数值大小涂彩色,则光源不起作用。
●ViewPoint用于设置观察点。
默认值为{1.3,-2.4,2},可以重新将观察点设置为任何点,从不同角度观察曲面的形状。
直接选择观察点的坐标绝非易事,为此这个软件开发了直观选择观察点的功能,十分方便和有趣。
单击Mathematica菜单Input中的第二项3DViewPointSelector,就可以直观选择观察点。
(3)由坐标数据表绘制曲面的函数
最后介绍由坐标数据表绘制曲面的函数:
ListPlot3D[{{z11,z12,z13,…},{z21,z22,z23,…},…}]其中参数是一个m行、n列的矩阵,这个函数以坐标(j,i,zij)作为曲面网格点绘制一个曲面。
这个函数的参数令人费解,以下通过最简单的例子表明数据与图形之间的对应关系。
例21使用坐标数据表绘制如图所示的曲面。
解:
In[1]:
=ListPlot3D[{{-1,0,2},{1,2,3}},AxesLabel→{″X″,″Y″,″Z″}]
Out[1]=-SurfaceGraphics-
提示:
在上图中x轴上的分点是1,2,3,y轴上的分点是1,2。
2.三维参数图形
(1)三维参数式曲线
绘制三维参数式曲线的函数是:
ParametricPlot3D[{x(t),y(t),z(t)},{t,a,b}]如果第一个参数改为{{曲线1参数式},{曲线2参数式},…},可以同时画出多条曲线。
例22绘制如图所示的三维参数式曲线
。
解:
In[1]:
=ParametricPlot3D[{3Sin[t],3Cos[t],t},{t,0,4π}]
Out[1]=-Graphics3D-
利用同时绘制多条曲线可以得到一些简易的三维图形。
例23同时绘制如图所示的3条三维直线。
解:
In[1]:
=ParametricPlot3D[{{t,1-t,0},{0,t,1-t},{1-t,0,t}},{t,0,1}]
Out[1]=-Graphics3D-
(2)三维参数式曲面
函数Plot3D的最大缺陷在于曲面总是定义在矩形区域上,这不能满足实际需要。
Mathematica提供的画三维参数图形的功能,留给用户自由变换的余地,用途广泛。
绘制三维参数式曲面与绘制三维参数式曲线使用同一函数,只是参数有差异:
ParametricPlot3D[{x(u,v),y(u,v),z(u,v)},{u,umin,umax},{v,vmin,vmax}]如果第一个参数改为{{曲面1参数式},{曲面2参数式},…},可以同时画出多个曲面。
例24绘制如图所示的三维参数式曲面
。
解:
In[1]:
=ParametricPlot3D[
{Cos[t](3+Cos[u]),Sin[t](3+Cos[u]),Sin[u]},
{t,0,2Pi},{u,0,2Pi}]
Out[1]=-Graphics3D-
例25绘制如图所示的莫比乌斯带。
解:
In[1]:
=r=2+0.5vCos[u/2];
x=rCos[u];
y=rSin[u];
z=0.5vSin[u/2];
ParametricPlot3D[{x,y,z},{u,0,2π},{v,-1,1}]
Out[5]=-Graphics3D-
说明:
通过以上两个例子表明,Mathematica的绘图语句就是绘图函数加数学公式,显得十分简捷、易于阅读,绘图的自动化水平达到了最高境界。
在高等数学的习题中,一个立方体经常是由两个曲面相交围成。
以下例子是其中很典型的一个。
例26绘制如图所示的立体图形。
解:
In[1]:
=z1=3-2x^2-y^2;
z2=x^2+2y^2;
x=rCos[θ];
y=rSin[θ];
ParametricPlot3D[{{x,y,z1},{x,y,z2}},{θ,0,2π},{r,0,1}]
Out[5]=-Graphics3D-
说明:
在上例中,首先将直角坐标化为柱面坐标,与高等数学教科书上的方法一致,这种绘图