数学图形的绘制_第1页
数学图形的绘制_第2页
数学图形的绘制_第3页
数学图形的绘制_第4页
数学图形的绘制_第5页
已阅读5页,还剩17页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、 八 数学图形的绘制在科学研究和工程设计中,数值计算的结果一般是以数据的形式反映客观世界的规律,但人们往往希望这些数据结果能够直观化、可视化,以便更好地理解这些数据之间的规律,MATLAB的图形处理功能就是用数学图形来反映数据之间存在的客观规律。8.1 二维数学图形绘制8.1.1 基本图形函数在MATLAB中,最常用、最基本的绘图是二维数学图形的绘制。表8.1列出了的二维图形函数库中的基本图形函数。另外,在通用图形函数库(graphics)中,cls,line等也是用得最多的图形函数。表8.1二维图形函数库(graph2d)基本X-Y图形plot线性X-Y坐标绘图polar极坐标绘图loglo

2、g双对数X-Y坐标绘图plotyy用左、右两种Y坐标画图semilogx半对数X坐标绘图semilogy半对数Y坐标绘图坐标控制axis控制坐标轴比例和外观subplot在平铺位置建立图形轴系hold保持当前图形图形注释title标出图名(适用于三维图形)gtext用鼠标定位文字xlabelX轴标注(适用于三维图形)legend标注图例ylabelY轴标注(适用于三维图形)grid图上加出标网格(适用于三维图形)text在图上标文字(适用于三维图形)打印print打印图形或把图存为M文件orient设定打印纸方向8.1.2 常用图形函数的使用1. plot绘图函数MATLAB最基本、最重要的绘

3、图命令就是plot绘图函数。它有多种基本的调用格式。plot(Y)% 如果Y是实数,Y就是它的列(column);如果是复数,则相当于 % plot(real(Y),imag(Y)。plot(X,Y,.)% 绘制X为横坐标,Y为纵坐标的数学图形。plot(X,Y,X1,Y1.)% 同时绘制Y对X,Y1对X1的数学图形。plot(X,Y,LineSpec,.)% 绘图不同线型、标识、颜色等的数学图形。【例8.1】 t=0:0.001:10; y=sin(t);Y=sin(10*t);plot(t,y,'r:',t,Y,'b')MATLAB窗口将显示图7.1所示的函

4、数曲线图形,其横坐标是t,纵坐标是y和Y。 图8.1在上例中,用绘图语句plot函数的不同参数,绘制出线型和颜色不同的两个数学图形。两条曲线各自有一对变量,并且有描述颜色的参数r(red)和b(blue)。练习1:练习2: 2. fplot和 ezplot绘图函数对于符号函数和变化剧烈的函数以及隐函数,可用fplot和ezplot进行较精确的绘图。ezplot是MATLAB最简便的作图函数,它有多种基本调用格式。ezplot(f) % 在-2 < x < 2的范围里对函数f = f(x)作图ezplot(f,min,max)% 在min< x < max的范围里对函数f

5、 = f(x)作图ezplot(f,xmin,xmax,ymin,ymax)% 在min < x < max,min < y <max的范围里对函数f = f(x,y)作图ezplot(x,y)% 在0< t < 2的范围里对函数x = x(t),y = y(t)作图ezplot(x,y,tmin,tmax)% 在min< t < max的范围里对函数x = x(t),y = y(t)作图【例8.2】用fplot命令描绘符号函数的数学图形。subplot(2,2,1), fplot('humps',0 1) % subplot用于

6、图形的分割。subplot(2,2,2), fplot('x2+2*x+1',-4 2)subplot(2,2,3), fplot('tan(x),sin(x),cos(x)',2*pi*-1 1 -1 1)subplot(2,2,4), fplot('sin(1 ./ x)', 0.01 0.1)图8.2【例8.3】绘制9个符号函数的数学图形。 subplot(3,3,1), ezplot('cos(x)')%绘制cos(x)曲线,-2p<x<2p subplot(3,3,2), ezplot('cos(x)

7、', 0, pi)%绘制cos(x)曲线,0<x<p subplot(3,3,3), ezplot('1/y-log(y)+log(-1+y)+x-1')%-2p<x<2p,-2p<y<2p subplot(3,3,4), ezplot('x2-y2-1')%-2p<x<2p,-2p<y<2p subplot(3,3,5), ezplot('x2 + y2-1',-1.25,1.25)%-1.25<x,y<1.25,axis equal subplot(3,3,6),

8、 ezplot('x3 + y3 - 5*x*y + 1/5',-3,3) subplot(3,3,7), ezplot('x3 + 2*x2 - 3*x + 5 - y2') subplot(3,3,8), ezplot('sin(t)','cos(t)')subplot(3,3,9),ezplot('sin(3*t)*cos(t)','sin(3*t)*sin(t)',0,pi)图8.3注:ezplot('cos(x)'),可不带区间,缺省为-2 < x < 2fpl

9、ot(cos(x),-2,2)必须带区间。练习3:3. line绘图函数在MATLAB中,绘制直线,使用line命令。例如line(0,5,0,10)% 绘制点(0,0)到点(5,10)的直线。4. hold和 clf图形函数在绘图过程中,如果要在已经绘制的图形上添加新的图形,可以使用hold命令来实现图形的保持功能。hold on 表示启动图形保持功能,hold off 表示关闭图形保持功能。在绘图过程中,为了彻底清除前面图形的影响,应该在绘图语句的前面使用clf命令。5. subplot图形函数MATLAB在绘图过程中,会自动弹出图形窗口(Figure),如果要在图形窗口中独立地显示多幅数

10、学图形,则可以使用图形窗口分割命令subplot。图形窗口分割命令subplot有多种格式,具体举例说明如下。 subplot(2,2,1);将整个绘图窗口分为2纵2横四个窗口,这是第1个(1,1)窗口,即左上角的窗口,图8.4所示。图8.4subplot(2,3,4);将整个绘图窗口分为2行3列六个窗口后,取第4个窗口。还可以采用另一种比较自由的窗口分割语句格式:subplot('Position',left bottom width height)例如subplot('Position', 0.27 0.38 0.50 0.37 ); 按照中括号里给出的四个

11、元素的向量分割图形区。四个元素依次为左边线、底边线、宽度、高度,其数值是所占整个绘图区间(归整为0,1)的比例值,分割结果如图7.6所示。 这个方式在界面的可视化设置里很有用。8.1.3 数学图形的修饰 1. 颜色和线型表8.2是plot绘图函数的若干参数。若要改变颜色,在座标对后面加上相关字串即可。例如表8.2MATLAB绘图命令字元颜色字元图线型态yyellow黄色.pointkblack黑色ocirclewwhite白色xcrossbblue蓝色+plus signggreen绿色*asteriskrred红色-Real lineccyan亮青色:dotmamethyst锰紫色-.Poi

12、nt- broken line-Broken line例如:t=0:0.01:10; plot(t,sin(t),'r')图8.7 图8.8 图8.9效果如图8.7所示。若要同时改变颜色及线型(Line style),也是在坐标对后面加上相关字串即可。例如 plot(t,sin(t),'r*')效果如图8.8所示。2. 调整图轴的范围用axis(xmin,xmax,ymin,ymax)函数来调整图轴的范围。例如 axis(0,6,-1.5,1) 效果如图8.9所示。3. 图轴、标题标注与文本标注x轴、y轴及图形标题标注命令格式:xlabel('Input

13、 Value'); ylabel('Function Value'); title('this is a function');文本标注命令格式:text(0.2,0.8,'f(x)=sin(x)+cos(2x)')效果如图8.10所示。 图8.10 练习4:在同一坐标系下画出y=sinx,y=cosx,在区间0,2pi上的曲线图,并注明曲线名称4. 图例标注与显示格线图例标注与显示格线的格式:legend('y = sin(x)') %指定图形的式样。可以是线图(line plots), 棒图 (bar graphs),

14、 饼图(pie charts)等。grid on%在当前图形上加栅格线。例如:fplot('sin(x)',-2*pi,2*pi); legend('y = sin(x)');grid on 8.1.4 特殊二维图形函数为了不同的需要,MATLAB提供了一些比较特殊的绘图函数, 如下表8.3所示。下面用例子说明其用法。表8.3MATLAB绘图命令名称意义bar棒图(直方图)comet彗星流动图errorbar图形加上误差范围fplot较精确的函数图形polar极坐标图hist累计图rose极座标累计图stairs阶梯图stem针状图fill实心图feather羽

15、毛图compass罗盘图quiver向量场图【例8.4】 t=-10:1:10; subplot(2,2,1); bar(t,cos(t); subplot(2,2,2); compass(t,cos(t); subplot(2,2,3); rose(t,cos(t);subplot(2,2,4); fill(t,cos(t),'b');效果如图8.14所示。 图8.14例:绘制r=2cos2(t-pi/8)的图形,t在0到2pi之间输入如下命令:t=0:0.01:2*pi;r=2*cos(2*(t-pi/8);polar(t,r)练习5:作出极坐标系下函数r=2(1-cost

16、),t在0到2pi之间的图形,同时作出相应的直角坐标系下的图形.练习6:绘制三叶玫瑰线r=2cos(3t)练习7:绘出以下曲线所围成的公共部分:r1=3cost;r2=1+cost8.2 三维数学图形绘制8.2.1 绘制三维曲线绘制三维曲线的命令格式为plot3(x1,y1,z1,LineSpec,.)函数格式除了包括第三维的信息(比如Z方向)之外,其它与二维函数plot相同。功能:plot3语句将绘制二维图形的函数plot的特性扩展到三维空间。【例8.5】t=(0:0.1:3)*pi; x=sin(t); y=cos(t); z=tan(t); plot3(x,y,z,'bo-

17、9;); % 用绘制由记号”和”构成的蓝色三维曲线 图8.15练习8:画出三维螺旋线图:x=2cost,y=2sint,z=2t,t在0,2pi之中.8.2.2 绘制三维曲面绘制三维曲面的命令格式为mesh(z)或mesh(.,C) 或meshc(.)或meshz(.)等功能:绘制矩阵的三维曲面图。mesh(z) 语句按照 x = 1:n 和y = 1:m绘制三维图, 这里 m,n = size(Z),Z是高度, 用不同的颜色表示该高度值。【例8.6】x=-2:0.01:2;x,y=meshgrid(x,x);%为绘制三维图形而从x生成的x和y矩阵。这里,% x,y是401x401的矩阵。r=

18、sqrt(x.2+y.2)+eps;z=sin (r); subplot(2,1,1);mesh(z);subplot(2,1,2);surf(x,y,z);%绘制三维曲面图,与mesh函数有相似功能。颜色为黑色。练习9:画出旋转抛物面z=x2+y2的图形练习10:画出锥面z=(x2+y2)(1/2)mesh(.,C) 语句中,参数C是代表颜色的数值。如果x,y,和z是矩阵,那么C必须是一个相同大小的色标矩阵。meshc(.) 语句绘制网格轮廓线图。【例8.7】X,Y = meshgrid(-3:.125:3);Z = peaks(X,Y); %为了方便绘制三维图,MATLAB提供了一个pea

19、ks函数,%可产生一个凹凸有致的曲面,包含了三个局部极大点及三个局部极小点meshc(X,Y,Z);axis(-3 3 -3 3 -10 5)图8.17meshz(.)语句依参考平面绘制网格四周门帘线图(a curtain plot around the mesh)。【例8.8】 X,Y = meshgrid(-3:.125:3);Z = peaks(X,Y);meshz(X,Y,Z)图8.18可分别用以下命令区别:x=-2:0.01:2;x,y=meshgrid(x,x);z=x.2+y.2;subplot(1,3,1);mesh(z)subplot(1,3,2);meshc(z)subplot(1,3,3);meshz(z)【例8.9】绘制三维曲面例一。x,y,z =peaks; subplot(2,2,1);meshz(x,y,z);%曲面加上门帘线axis(-inf inf -inf inf -inf inf); subplot(2,2,2);waterfall(x,y,z);%在x方向产生水流效果axis(-inf inf -inf inf -inf inf); subplot(2,2,3);meshc(x,y,z);%同时画出网状图与等高线axis(-inf inf -inf inf -inf inf); subplot(

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论