matlab经典作图
二维图形的绘制
二维图形是将平面坐标上的数据点连接起来的平面图形。可以采用不同的坐
标系,出直角坐标系外,还可以采用对数坐标系、极坐标。数据点可以用向量或矩阵形式给出,类型可以是实型或复型。二维图形输出,利用MATLAB勺二维绘图函数可以很容易作出需要的各种图形。
plot 函用于绘制直角坐标的二维曲线。使用方plot(x,y,linespeci),plot(x,y) 先描出点(x(i) , y(i)),然后用直线依次相连,
其中参数linespeci指明了线条的类型,标记符号和画线用的颜色。lot是绘制二维曲线的基本命令,但在使用此函数之前,我们需先定义曲线上每一点的x 及y坐标若要在同一个画面上画出多条曲线,只需将坐标对依次放入plot函数
即可。
以下各例题中的程序都是在MATLAB?辑器中函数图象的绘制:
先是简单的一次函数图像的绘制;简单的一次函数在数学图像绘制中是比较简单的,在MATLA语言中用plot函数就能实现。
问题1,简单的一次函数y=3x的函数图像。
程序如下:
x=0:1:10; %生成一个从0到10的步长为1的行向量
y=3*x; %变量y的表达式
plot(x,y) %生成二维图形
运行结果如图1所示。
图1 y=3x 的图形
有时在数学中我们要把三角函数图像同时绘制出来,对它们的周期,极值等函数性质进行比较,在数学中我们自己很难解决,但是matlab中的图形窗口分
割函数一subplot就能够实现。其调用格式为:subplot (m,n,p )。下面我们就用matlab 中的subplot函数进行窗口风隔,绘制同一变量的各种三角函数图象。
问题2,在一个图形窗口中以子图形式同时绘制正弦,余弦,正切,余切曲线。
程序如下:
x=li nspace(0,2*pi,600; %x的取值范围及步长
y=sin(x); %正弦函数的值给y
z=cos(x); %余弦函数的值赋给z
t=sin(x)./(cos(x)+eps); %正切函数赋变量t
ct=cos(x)./(sin(x)+eps); %与其函数赋变量ct
subplot(2,2,1); %选择2x2个区中的1号区
stairs(x,y); %生成x与x的阶梯图
title( 'si n(x)-1' ); %給正弦函数添加标题
axis([0,2*pi,-1,1]); %设置坐标
subplot(2,1,2); %选择2x1个区中的1号区
stem(x,y); %生成x与y的杆形图
title( 'si n(x)-2)' ) J%给正弦函数添加标题
axis([0,2*pi,-1,1]); %设置坐标
subplot(4,4,3); %选择4x4个区中的3号区
plot(x,y); % 产生x与z的二维曲线
title( 'cos(x)' ); %给余弦函数图象添加图标
axis([0,2*pi,-1,1]); %设置坐标
subplot(4,4,4); %选择4x4中的4号区
plot(x,z); %产生x与z的二维曲线
title( 'cos(x)' ); %给余弦函数图象添加图标
axis([0,2*pi,-1,1]); %设置坐标
subplot(4,4,7); %选择4x4中的7号区
plot(x,t) ;% 产生x与t的二维曲线
title( 'tan ge nt(x)' ); %给正切函数图象添加图标
axis([0,2*pi,-40,40]); %设置坐标
subplot(4,4,8); %选择4x4中的8号区
plot(x,ct); %产生x与ct的二维曲线
title( 'cota ngen t(x)' ); %給余切函数图象添加图标
axis([0,2*pi,-40,40]); %设置坐标
运行图像如图2所示
□12 3 4 5 6
图2 正弦余弦正切余切函数二维图像
简单的指数函数,三角函数,幕函数等虽然麻烦,但是都用手工能够绘制出来。但是超越函数图形手工几乎是绘不出来的,matlab强大的功能只要简单的几句程序就能解决这一冋题。
问题3:绘制曲线有y 0.5x sin2 x的函数图形。
程序如下:
x=0:pi/100:2*pi;
y=2*exp(-0.5*x).*si n(2*pi*x); Plot(x,y)
运行结果如图3所示。
图3 曲线y=t 「、丄二取.
以上是用matlable 在一个窗口中绘制一个图像,这个不是很难,但是在同 一窗口中同时绘制出以上三种图像是相当难的, 更重要的是在同一窗口中同时绘 制几个图像时,必须要给图像加以说明,要让图像很明了的显示出来,让人一眼 就能分辨出那个函数对应的是哪一个图像。Matlab 强大的功能就能很容易的实 现,matlab 中用plot 函数绘制二维图像时用plot (x,y, ' k.')这种形式就可 以给不同函数图形设置不同的线型,不同的颜色。还可以用 lege nd 函数给图像 加图例,用xlabel 和ylabel 函数来给图像的坐标轴见坐标说明。
在同一窗同时绘制一次函数图象,二次函数图象和超越函数的图象,图像并 做一比较。
问题4,在[-3,3]范围作出函数y x 2, y 10x x sin8x , y 3x 的图形。 程序如下:
%函数y 的表达式
%生成x 与y 的二维图形,线性为实线,颜色为黑色 %保持图形 %生成一个从-3到1步长为0.1的行向量 %函数y 的表达式
%生成x 与y 的二维图形,线性为虚线,颜色为黑色 %保持图形
%生成一个从-3到1步长为0.1的行向量 %函数y 的表达式
%生成x 与y 的二维图形,线性为虚线,颜色为黑色 %保持图形
,'y=xA2' , 'y=3x' ) %加图例
%生成一个始数行向量
%函数y 的表达式 %生成二维图形
x=0:0.001:2*pi; %生成一个从0到2":步长为0.001 的行向量
y=10.*exp(-x).*si n(8*x); plot(x,y,
'k-')
hold on;
x=-3:0.1:1;
y=x.A2;
plot(x,y,
'k.')
hold on; x=1:0.1:3;
y=3*x;
plot(x,y, 'k.')
hold on ;
lege nd( 'y=10e A [-x]si n8x'
xlabel( '\itx' ); %乂轴坐标说明
ylabel( '\ity' ); %y 轴坐标说明
ti tle( 'Is Limit Exist ing When x=1?' ) % 图像添加标题
运行结果如图4所示。
图4 同一窗口中的多个函数图形
在数学课程中我们可以用matlab明确解决分段函数问题如:假如我们要解决当x=28时要求这个分段函数相对应的解。问题5求分段函数
解决这个问题的程序如下:
x=28;
for x=-10:5
if x<-1
y=0;
elseif x>=-1
&x<0
y=-3*x.A2+x;
elseif x>=0& x y=si n( x)+x; else %输入x的值为28 %x是从-10到5变化,步长为1 %判断条件x的值 %符合第一个条件时为0 %不满足的话判断其他条件 %得到相应值 % 另外的条件 %对应的值 另外的条件 y=pi; end %y的值 %结束条件语 句 end y 结士果是. 结果疋. y = 3.1416 %结束for循环 %输岀y的值 除此之外,我们还可以解决分段的一阶常微分函数分 方程, 。例如,已知一阶常微 其中 u 的初值为u(0)=0,求t>=0时的解。画出图像,并求u 的极大值 程序如下: f un=i nli ne(['((13-u)/18-(si n(10*t/pi)>0)*','1.18*s in (10*t/pi)-u/6 .7)/0.047'],'t','u'); [t,u]=ode45(fu n,[0,10],[0]); plot(t,u) 运行结果如图5所示。 %调用函数 %t 和u 构成向量 绘制t 和u 关系曲线 。当 t>=0时u 图5 画出这个图时,我们可以轻而 的极大值,我们可以在图上读出, 通过这样的程序,我们可以很, 判断。另外我们可以求解分段函数的积分 段函数的图形问题。 上面我们讨论了用MATLAB?言绘制分段函数的问题, 罢了。下 面我们用它来绘制一个更有意思的分段函数, 语言来做一些有意思的图形,用来增加我们学习的乐趣。 问题6,形状如囧字的图像绘制,其程序如下: x=0:0.001:2*pi; %x 的取值范围及步长 c=0.1; %常数c 的值 勺解出题目所提 经行复杂的计 而我们不再去麻烦的 F 面我们来用它解决分 上面仅仅是冰山一角 这样,我们可以用MATLAB y=5./cos(x); y(abs(x-pi/2) 运行结果如图6所示: %y 的值 %函数的条件极其取值 %绘制函数图像 这个函数图形意思吧,这不但是一个函数图形,而且还是我们的一个汉字的样子一囧 字。这也正是这门学科吸引人之处, 这样我们不仅学到了知识而且还增加了不少的兴趣。 以 上是对二维图像的绘制,下面我们来讨论用 隐函数图像的绘制:如果给定了函数 matlab 绘制三角函数和指数函数。 显式的表达式,可以先设置自变量向量,然后根 plot 函数绘制出图形。但如果函数用隐函数形式给出, Matlab 提供了 ezplot 函数绘制隐函数图形,下面是隐函数 ,[0,1]);axis equal %在区间 0 %分区,选择1x3中的2号区 ,[-3,3]) %在区间-3 %分区,选择1x3中的3号区 ,'sin(3*t)*sin(t)' ,[0,pi]) %在区间0 运行图形如图7所示。 图6形状似囧字的分段函数 据表达式计算出函数向量,从而用 则很难用上述方法绘制出图形。 图像的绘制。例如绘制隐函数 y 3 5xy 1 0的图形, 5 x 参数方程 x sin 3t cost ” 的 sin 3tsi nt 图形。 程序如下: subplot(1,3,1); ezplot( 'cos(ta n( pi*x))' subplot(1,3,2); ezplot( 'x A 3+y A 3-5*x*y+1/5' 像 subplot(1,3,3); ezplot( 'si n(3*t)*cos(t)' %选择1x3中的1号区 图7 隐函数图形 有时数学中的有些函数用极坐标来处理更简单, matlab 提供的 专门用来绘制极坐标图形,其调用格式为polar (thera , rho ,选项) 为极坐标极角,rho 为极坐标矢径,选项的内容与 plot 相似。例8: =cos(4 0 )、r =1+2sin( 0)的极坐标图形。程序如下: subplot(1,2,1); %分区,选择1x2中的1号区 theta=li nspace(0,2*pi); %产生0到2的一个行向量 r=cos(4*theta); %r 的表达式 polar(theta,r) %绘制theta 和r 的极坐标图形 subplot(1,2,2); %分区,选择1x2中的2号区 t=0:0.01:2*pi; %产生0到2 n,步长为0.01的一个行向量 r =1+2*si n( t); %r 的表达式 polar(t,r) %绘制t 与r 的表达式 图形如图8所示。 5 x yti/5 = x -3 —j ------ L Q D polar 函数 其中thera 分别作出r