计算机仿真课件:第三章 MATLAB绘图_第1页
计算机仿真课件:第三章 MATLAB绘图_第2页
计算机仿真课件:第三章 MATLAB绘图_第3页
计算机仿真课件:第三章 MATLAB绘图_第4页
计算机仿真课件:第三章 MATLAB绘图_第5页
已阅读5页,还剩58页未读 继续免费阅读

下载本文档

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

文档简介

1、第一节 二维图形的绘制第三章 MATLAB绘图一. plot 函数plot 函数是最基本的绘图函数,其基本的调用格式为:1plot(y)-绘制向量y 对应于其元素序数的二维曲线图,如果y 为复数向量,则绘制虚部对于实部的二维曲线图。例:绘制单矢量曲线图。 y=0 0.6 2.3 5 8.3 11.7 15 17.7 19.4 20; plot(y)由于y 矢量有10 个元素,x 坐标自动定义为1 2 3 4 5 6 7 8 9 10。图形为:2.plot(x,y)-绘制由x,y 所确定的曲线。1)x,y 是两组向量,且它们的长度相等,则plot(x,y)可以直观地绘出以x 为横坐标,y 为纵坐

2、标的图形。如:画正弦曲线:t=0:0.1:2*pi;y=sin(t);plot(t,y)2)当plot(x,y)中,x 是向量,y 是矩阵时,则绘制y 矩阵中各行或列对应于向量x 的曲线。如果y 阵中行的长度与x 向量的 长度相同,则以y 的行数据作为一组绘图数据;如果y 阵中列的长度与x 向量的 长度相同,则以y 的列数据作为一组绘图数据;如果y 阵中行、列均与x 向量的长度相同,则以y 的每列数据作为一组绘图数据。3) 如果x,y 是同样大小的矩阵,则plot(x,y)绘出y 中各列相应于x 中各列的图形。 3多组变量绘图:plot(x1, y1, 选项1, x2, y2, 选项2, )

3、上面的plot 格式中,选项是指为了区分多条画出曲线的颜色、线型及标记点而设定的曲线的属性。MATLAB 在多组变量绘图时,可将曲线以不同的颜色、不同的线型及标记点表示出来。这些选项如下表所示:色彩字符所定颜色线型字符线型格式y黄-实线m紫:点线c青-.点划线r红- -虚线g绿b蓝w白k黑cyan 青色 purple 紫色标记符号数据点形式标记符号数据点形式.点大于号向上的三角形t=0:0.1:7;x=sin(t);plot(t,x, k-.); 注意:1)表示属性的符号必须放在同一个字符串中; 2)可同时指定13 个属性; 3)与先后顺序无关; 4)指定的属性中,同一种属性不能有两个以上。二

4、双Y 轴绘图:plotyy()函数其调用格式为:plotyy(x1,y1,x2,y2)-绘制由x1,y1 和x2,y2 确定的两组曲线,其中x1,y1 的坐标轴在图形窗口的左侧,x2,y2 的坐标轴在图形窗口的右侧。plotyy(x1,y1,x2,y2, function1,function2)-功能同上,function 是指那些绘图函数如:plot,semilogx,loglog 等。例如:在一个图形窗口中绘制双Y 轴曲线。x=0:0.3:12;y=exp(-0.3*x).*sin(x)+0.5;plotyy(x,y,x,y,plot,stem) stem:绘制stem 形式的曲线(上端带

5、圈的竖线)。 绘图结果:两条图线自动用不同的颜色区分,两个坐标的颜色与图线的颜色相对应,左边的Y 轴坐标对应的是plot 形式的曲线,右边的Y 坐标对应的是stem 形式的曲线。 三对数坐标图绘制函数: 在对数坐标图的绘制中,有三种绘图函数:semilogx,semilogy 和loglog 函数。1)semilogx( )-绘制以X 轴为对数坐标轴的对数坐标图。 其调用格式为:semilogx(x,y,属性选项) 其中属性选项同plot 函数。 该函数只对横坐标进行对数变换,纵坐标仍为线性坐标。2)semilogy( )-绘制以Y 轴为对数坐标轴的对数坐标图。 其调用格式为:semilogy

6、(x,y,属性选项) 该函数只对纵坐标进行对数变换,横坐标仍为线性坐标。3)loglog( )- 绘制X、Y 轴均为对数坐标轴的图形。 其调用格式为:loglog(x,y,属性选项) 该函数分别对横、纵坐标都进行对数变换。例:x=0:0.1:6*pi;y=cos(x/3)+1/9;subplot(221), semilogx(x,y);subplot(222), semilogy(x,y);subplot(223), loglog(x,y);4)logspace( a,b,n)函数功能:生成从10的a次方到10的b次方之间按对数等分的n个元素的行向量 . 这里,a表示向量的起点;b 表示向量的

7、终点;n 表示需要产生向量点的个数(一般可以不给出,采用默认值50)。在控制系统分析中一般采用这种方法来构成频率向量w。关于它的应用后面还要讲到。四绘制多个子图:subplot( )函数功能: 允许在一个图形窗口上绘制多个子图(如对于多变量系统的输出),允许将窗口分割成nxm 个部分。调用格式为: subplot(n,m,k)或subplot(nmk)- n,m 分别表示将窗口分割的行数和列数, k 表示要画图部分的代号,表示第几个图形。注:nmk 三个数可以连写,中间不用符号分开。例如:将窗口划分成2x2=4 个部分,可以这样写:subplot(2,2,1),plot()subplot(2,

8、2,2),subplot(2,2,3),subplot(2,2,4),注:subplot 函数没有画图功能,只是将窗口分割。第二节 图形的修饰与标注特殊的函数修饰画出的图形1)坐标轴的标题:title 函数调用格式为:title(字符串)-字符串可以写中文 如:title(My own plot)2)坐标轴的说明:xlabel 和ylabel 函数格式:xlabel(字符串) ylabel(字符串)如:xlabel(This is my X axis) ylabel(My Y axis)3)图形说明文字:text 和gtext 函数Atext 函数:按指定位置在坐标系中写出说明文字。 格式为:

9、text(x1, y1, 字符串, 选项) x1,y1 为指定点的坐标;字符串为要标注的文字;选项决定x1,y1的坐标单位,如没有选项,则x1,y1 的坐标单位和图中一致; 如选项为sc,则x1,y1 表示规范化窗口的相对坐标,其范围为0 到1。 如:text(1,2, 正弦曲线)Bgtext 函数:按照鼠标点按位置写出说明文字。 格式为:gtext(字符串) 当调用这个函数时,在图形窗口中出现一个随鼠标移动的大十字交叉线,移动鼠标将十字线的交叉点移动到适当的位置,点击鼠标左键,gtext 参数中的字符串就标注在该位置上。 4)给图形加网格:grid 函数, grid on/off命令 控制是

10、画还是不画网格线,5) hold on/off命令 控制是保持原有图形还是刷新原有图形6)在图形中添加图例框:legend 函数其调用格式为:Alegend(字符串1, 字符串2, )-以字符串1,字符串2 作为图形标注的图例。Blegend(字符串1, 字符串2, , pos)-pos 指定图例框显示的位置。图例框被预定了6 个显示位置:0-取最佳位置;1-右上角(缺省值);2-左上角;3-左下角;4-右下角;-1-图的右侧。 7)用鼠标点选屏幕上的点:ginput 函数格式为:x, y, button=ginput(n)其中:n 为所选择点的个数;x,y 均为向量,x 为所选n个点的横坐标

11、;y 为所选n个点的纵坐标。button 为n 维向量,是所选n 个点所对应的鼠标键的标号:1-左键;2-中键;3-右键。可用不同的鼠标键来选点,以区别所选的点。 此语句可以放在绘图语句之后,它可在绘出的图形上操作,选择你所感兴趣的点,如峰值点,达到稳态值的点等,给出点的坐标,可求出系统的性能指标。x=0:pi/10:2*pi;y1=sin(x);y2=cos(x);subplot(211),plot(x,y1)title(正弦曲线);xlabel(x轴);ylabel(y轴);grid onsubplot(212),plot(x,y2)hold onstem(x,y2)text(1.5,0.

12、2, y2=cosx)legend(余弦,stem)gtext(余弦曲线)8)一些有关坐标轴的函数:1)定义坐标范围:一般MATLAB 自动定义坐标范围,可用:axis(Xmin, Xmax, Ymin, Ymax) 来重新设定;2)坐标轴控制:MATLAB 的缺省方式是在绘图时,将所在的坐标系也画出来。 axis off 隐去坐标系;axis on 显示坐标轴(缺省)。3)通常MATLAB 的坐标系是长方形,长宽比例大约是4:3, axis square得到一个正方形的坐标系:4)坐标系横纵轴的比例是自动设置的,比例可能不一样。axis equal 得到相同比例的坐标系t=0:0.1:7;y

13、=0;x=sin(t); plot(t,x,r-*,t,y,-.b+) ;axis off %取消坐标轴,默认为显示坐标轴即axis on在0 x2区间内,绘制曲线 y=2e-0.5xcos(4x)x=0:pi/100:2*pi;y=2*exp(0.5*x).*cos(4*pi*x); plot(x,y)text(3,0.5,y=2exp(-0.5*x)cos(4*pi*x)%输入特定的文字需要用反斜杠()开头pi alpha beta leftarrow rightarrow bullet .例 分析下列程序绘制的曲线。x1=linspace(0,2*pi,100);%行向量x2=linsp

14、ace(0,3*pi,100);x3=linspace(0,4*pi,100);y1=sin(x1);y2=1+sin(x2);y3=2+sin(x3);x =x1;x2;x3;%x=x1 x2 x3y=y1;y2;y3; %y=y1 y2 y3plot(x,y,x1,y1-1)legend(y1=sin(x1) , y2=1+sin(x2) , y3=2+sin(x3) ,y1-1=sin(x1) ,4) %该参数的选择项为0,1,2,3,4,-1;%1为默认值,可省略。例 用不同标度在同一坐标内绘制曲线y1=0.2e-0.5xcos(4x) 和y2=2e-0.5xcos(x)。x=0:pi

15、/100:2*pi;y1=0.2*exp(-0.5*x).*cos(4*pi*x);y2=2*exp(-0.5*x).*cos(pi*x);plotyy(x,y1,x,y2);grid on%给坐标加网格线,默认为不加即grid off函数意义grid on(/off)给当前图形标记添加(取消)网格xlabel(string)标记横坐标ylabel(string)标记纵坐标title(string)给图形添加标题text(x,y,string)在图形的任意位置添加说明性文本gtext(string)利用鼠标添加说明性文本信息axis(xmin xmax ymin ymax)设置坐标轴的最小最大

16、值例 在0 x2区间内,绘制曲线y1=2e-0.5x和 ,并添加图形标注。程序如下:x=0:pi/100:2*pi;y1=2*exp(-0.5*x);y2=cos(4*pi*x);plot(x,y1,x,y2);title(x from 0 to 2pi); %加图形标题xlabel(Variable X); %加X轴说明ylabel(Variable Y); %加Y轴说明text(0.8,1.5,曲线y1=2e-0.5x); %在指定位置添加图形说明text(2.5,1.1,曲线y2=cos(4pix); legend(y1, y2) %加图例例:x=0:pi/10:2*pi;y1=sin(

17、x);y2=cos(x);plot(x,y1,x,y2)grid on %添加网格xlabel(Independent Variable X)ylabel(Dependent Variable Y1&Y2)title(Sin and Cosine Curve)text(1.5,0.3,cos(x)gtext(sin(x)axis(0 6 -1 1)例:在同一窗口中绘制线段。x=0:pi/10:2*pi;y1=sin(x);y2=cos(x);y3=x;plot(x,y1,r,x,y2,b)hold on %hold off 与位置有关?plot(x,y3,m)plot(x,y2+y1, b)%

18、 hold on保持原有图形%hold off刷新原有图形 例 在同一坐标中,可以绘制3个同心圆,并加坐标控制。 t=0:0.01:2*pi;%行向量 x=exp(i*t); y=x;2*x;3*x;%分别以实部和虚部为横、纵坐标 plot(y) grid on; %加网格线 box on; %加坐标边框 axis equal %坐标轴采用等刻度三维图形三维线条图plot3函数与plot函数用法十分相似,其调用格式为:plot3(x1,y1,z1,选项1,x2,y2,z2,选项2,xn,yn,zn,选项n) 其中每一组x,y,z组成一组曲线的坐标参数,选项的定义和plot函数相同。当x,y,z

19、是同维向量时,则x,y,z 对应元素构成一条三维曲线。当x,y,z是同维矩阵时,则以x,y,z对应列元素绘制三维曲线,曲线条数等于矩阵列数。例:绘制下面方程在t=0 ,2的空间图形。x=0:pi/10:2*pi;y1=sin(x);y2=cos(x);plot3(x,y1,y2,m:p)grid onxlabel(Dependent Variable Y1)ylabel(Dependent Variable Y2)zlabel(Dependent Variable X)title(Sine and Cosine Curve)注: legend 不可用于三维图形第四章 科学计算一、曲线拟合 po

20、lyfit函数的调用格式为: P,S= polyfit (X,Y,m ) 函数根据采样点X和采样点函数值Y,产生一个m次多项式P及其在采样点的误差向量S。 其中X, Y是两个等长的向量,P是一个长度为m+1的向量,P的元素为多项式系数。4.1 数据处理注:用 polyfit 函数来求得最小二乘拟合多项式的 系数,再用 polyval 函数按所得的多项式计算所给出点上的函数近似值。二、数值插值 interpolation 1.一维数据插值 其调用格式为: Y1=interp1(X,Y,X1,method) 函数根据X,Y的值,计算函数在X1处的值。X,Y是两个等长的已知向量,分别描述采样点和样本

21、值,X1是一个向量或标量,描述欲插值的点,Y1是一个与X1等长的插值结果 method是插值方法,允许的取值有linear、nearest、cubic、spline。注意: X1的取值范围不能超出X的给定范围,否则,会给出“NaN”错误。 MATLAB中有一个专门的3次样条插值函数Y1=spline(X,Y,X1),其功能及使用方法与函数Y1=interp1(X,Y,X1,spline)完全相同。2. 二维数据插值其调用格式为: Z1=interp2(X,Y,Z,X1,Y1,method) 其中X, Y是两个向量,分别描述两个参数的采样点,Z是与参数采样点对应的函数值,X1,Y1是两个向量或标

22、量,描述欲插值的点。Z1是根据相应的插值方法得到的插值结果。 注: method的取值与一维插值函数相同。X, Y, Z也可以是矩阵形式。 同样,X1,Y1的取值范围不能超出X,Y的给定范围,否则,会给出“NaN”错误。例 某观测站测得某日6:00时至18:00时之间每隔2小时的室内外温度(),用3次样条插值分别求得该日室内外6:30至17:30时之间每隔2小时各点的近似温度()。 设时间变量h为一行向量,温度变量t为一个两列矩阵,其中第一列存放室内温度,第二列储存室外温度。命令如下:h =6:2:18;t=18,20,22,25,30,28,24;15,19,24,28,34,32,30;X

23、 =6.5:2:17.5Y=interp1(h,t,X,spline) %用3次样条插值计算例 某实验对一根长10米的钢轨进行热源的温度传播测试。用x表示测量点0:2.5:10(米),用h表示测量时间0:30:60(秒),用T表示测试所得各点的温度()。试用线性插值求出在一分钟内每隔20秒、钢轨每隔1米处的温度TI。x=0:2.5:10;h=0:30:60;T=95,14,0,0,0;88,48,32,12,6;67,64,54,48,41;xi=0:10;hi=0:20:60;Ti=interp2(x,h,T,xi,hi) 多项式是形如下式的式子:P(x)=a0 xn+a1xn-1+an-1

24、x+an多项式用行向量表示:Pa0 a1 a2an-1 an多项式行向量的构造直接键入用命令poly(a) 来生成以a为特征值的特征多项式注:如果a=x0 x1xn-1 xn,由命令poly(a)可生成(x-x0)(x-x1)(x-xn-1)(x-xn)所对应的多项式的系数。也就是由给定的根创建多项式。4. 2多项式及其运算 polynomial1.多项式的建立例:已知向量A=1 34 80,用此向量构造一多项式并显示结果。A=1 -34 -80;PA=poly(A)PA = 1 113 2606 -2720PAX=poly2sym(PA,X)PAX = X3+113*X2+2606*X-27

25、202.多项式求根多项式求根可用roots函数。例:求多项式p(x)=2x4-6x3+3x2+0 x+7的根。p=2 -6 3 0 7;x=roots(p)x = 1.9322 + 0.4714i 1.9322 - 0.4714i -0.4322 + 0.8355i -0.4322 - 0.8355i3.多项式求值采用polyval函数可以求出当多项式中的未知数为某个特定值时该多项式的值。例:求上例中x=1时的值。p=2 -6 3 0 7;polyval(p,1)ans = 64.多项式的四则运算多项式的加减法运算符注:进行加减运算的多项式应该具有相同的阶次,如果阶次不同,低阶的多项式必须用零

26、添补至高阶多项式的阶次。例:求两个多项式a(x)=5x4+4x3+3x2+2x+1和b(x)=3x2+1的和。 a=5 4 3 2 1;b=3 0 1; c=a+0 0 b c = 5 4 6 2 2多项式的乘除法多项式乘除法分别对应多项式的卷积(convolution)和解卷(deconvolution)运算。乘法采用conv函数。接上例 d=conv(a,b) d = 15 12 14 10 6 2 1除法由deconv函数完成,结果包括商(quotient)和余数(remainder)两部分。 q,r=deconv(P1,P2)用于对多项式P1和P2作除法运算。其中q返回多项式P1除以P

27、2的商式(商向量),r返回P1除以P2的余式(余向量)。这里,q和r仍是多项式系数向量。deconv是conv的逆函数,即有P1=conv(P2,q)+r。5.多项式的导数 polynomial derivative函数polyder例:求多项式p(x)=2x4-6x3+3x2+7的导数。p=2 -6 3 0 7;q=polyder(p)q = 8 -18 6 0pd=poly2sym(q,x)pd =8*x3-18*x2+6*x常用的多项式函数函数功能roots求多项式的根poly用根构造多项式polyval计算多项式的值polyvalm计算参数为矩阵的多项式的值residue部分分式展开p

28、olyfit多项式数据拟合polyder导数conv乘法deconv除法4.3 MATLAB符号计算1.创建符号变量两个建立符号对象的函数:sym和syms,两个函数的用法不同。(1) sym函数sym函数用来建立单个符号量,一般调用格式为: 符号量名=sym(符号字符串) 该函数可以建立一个符号量,符号字符串可以是常量、变量、函数或表达式。 (2) syms函数 函数syms,一次可以定义多个符号变量。调用格式为: syms 符号变量名1 符号变量名2 符号变量名n 用这种格式定义符号变量时不要在变量名上加字符串分界符(),变量间用空格而不要用逗号分隔。例 a=sym(a);b=sym(b)

29、;c=sym(c); syms a b c 2建立符号表达式和符号矩阵建立符号表达式有以下2种方法:(1)用sym函数建立符号表达式。(2) 使用已经定义的符号变量组成符号表达式。 f=sym(a*x2+b*x+c) f = a*x2+b*x+c syms x a b c f=a*x2+b*x+cf = a*x2+b*x+c创建符号矩阵的方法同创建符号表达式如: syms a11 a12 a21 a22 A=a11 a12;a21 a22 A = a11, a12 a21, a22A=sym(a11 a12;a21 a22) A = a11, a12 a21, a223 符号运算factor(

30、f):对符号表达式f分解因式。expand(f):对符号表达式f进行展开。collect(f,x):对符号表达式f按变量x合并同类项。transpose(s):返回符号矩阵s的转置矩阵。s:返回符号矩阵s的共轭转置矩阵。det 、diag、triu、tril、inv、rank、eig等4 符号函数的极限limit(f,x,a):求符号函数f(x)的极限值。即计算当变量x趋近于常数a时,f(x)函数的极限值。注:其中a可以为一个确定的数,也可以为无穷大。在应用时,先用syms命令把x声明为符号变量.(2) limit(f,x,a,right):求符号函数 f 的极限值。right表示变量x从右边

31、趋近于a。(3) limit(f,x,a,left):求符号函数 f 的极限值。left表示变量x从左边趋近于a。例如:求极限 syms x limit(sin(x)/x,x,0)ans =1 syms x limit(1/x,x,0,left) ans = -inf limit(1/x,x,0,right) ans = inf5 符号函数的微分diff函数用于对符号表达式求微分(导数)。diff(f, x,n):以x为自变量,对符号表达式f求n阶导数, n为正整数。 syms x diff(x*cos(x),x) ans = cos(x)-x*sin(x) diff(x*cos(x),x,2

32、) ans = -2*sin(x)-x*cos(x) 6 积分运算 integral 符号积分由函数int来实现。int(f,x):以x为自变量,对被积函数或符号表达式f求不定积分。int(f,x,a,b):求定积分运算。a,b分别表示定积分的下限和上限。该函数求被积函数在区间a,b上的定积分。a和b可以是两个具体的数,也可以是一个符号表达式,还可以是无穷(inf)。当函数f关于变量x在闭区间a,b上可积时,函数返回一个定积分结果。当a,b中有一个是inf 时,函数返回一个广义积分。当a,b中有一个符号表达式时,函数返回一个符号函数。 syms x int(1/(x2+1),x)ans =atan(x) syms x t; f1=x2/(x+1); a1=int(f1,1,2) a1 = log(3)+1/2-log(2) f2=1/(x2+1) ; a2=int(f2, x, -inf,inf)

温馨提示

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

评论

0/150

提交评论