1、数学实验,Matlab 绘图(一),主要内容,Matlab 二维曲线作图 Matlab 二维特殊图形,二维曲线作图,Matlab 绘图问题,如何画出 ysin(x) 在 0, 2*pi 上的图像?,手工作图,Matlab 绘图步骤,找点: x=0, pi/3, pi/2, 2*pi/3, pi, ,计算函数值: y=sin(0), sin(pi/3), sin(pi/2), ,描点:在坐标系中画出这些离散点,用直线或曲线连接这些点,得到函数的大致图形,Matlab 作图,Matlab 绘图,给出离散点列: x=0:pi/10:2*pi,计算函数值: y=sin(x),画图:用 matlab 二
2、维绘图命令 plot 作出函数图形 plot(x,y),Matlab 二维作图,plot(x,y),基本形式,x, y 都是向量,则以 x 中元素为横坐标, y 中元素为纵坐标作平面曲线。此时 x, y 必须具有相同长度。,x, y 都是矩阵,则将 x 的列和 y 中相应的列相组合,绘制多条平面曲线。此时 x, y 必须具有相同的大小。,x 是向量, y 是矩阵,若 x 的长度与 y 的行数相等,则将 x 与 y 中的各列相对应,绘制多条平面曲线;否则,若 x 的长度与 y 的列数相等,则将 x 与 y 中的各行相对应,绘制多条平面曲线。此时 x 的长度必须等于 y 的行数或列数。,plot
3、举例,例:在0x2区间内,绘制曲线y=2e-0.5xcos(4x) 程序如下: x=0:pi/100:2*pi; y=2*exp(-0.5*x).*cos(4*pi*x); plot(x,y), plot(t,z); plot(t,z);,Matlab 二维作图,plot(y): 绘制向量 y 中元素的线性图,基本形式,同时绘制多个函数图像,plot(x1,y1,s1,x2,y2,s2, . ,xn,yn,sn),属性选项 可以省略,等价于:,hold on plot(x1,y1,s1) plot(x2,y2,s2) . plot(xn,yn,sn),a=linspace(0,2*pi,100
4、0); x=a;a;a; y=sin(x(:,1),cos(x(:,2); plot(x(:,1:2),y),讨论:以下程序作出的图形是什么样的图形?,例5-3 分析下列程序绘制的曲线。 x1=linspace(0,2*pi,100); x2=linspace(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; y=y1;y2;y3; plot(x,y,x1,y1-1),对数坐标图形,MATLAB提供了绘制对数和半对数坐标曲线的函数,调用格式为:,semilogx (
5、x1,y1,选项1,x2,y2,选项2,) semilogy (x1,y1,选项1,x2,y2,选项2,) loglog (x1,y1,选项1,x2,y2,选项2,),loglog 采用对数坐标绘制对数坐标曲线。 semilogx 横轴采用对数坐标,纵轴采用线性坐标。 semilogy 横轴采用线性坐标,纵轴采用对数坐标。,具有两个纵坐标标度的图形,在MATLAB中,如果需要绘制出具有不同纵坐标标度的两个图形,可以使用plotyy绘图函数。调用格式为: plotyy(x1,y1,x2,y2) 其中x1,y1对应一条曲线,x2,y2对应另一条曲线。横坐标的标度相同,纵坐标有两个,左纵坐标用于x1
6、,y1数据对,右纵坐标用于x2,y2数据对。,例 用不同标度在同一坐标内绘制曲线 y1=0.2e-0.5xcos(4x) 和y2=2e-0.5xcos(x)。程序如下: x=0:pi/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);,举例,图形的属性,点和线的基本属性,图形的属性,属性可以全部指定,也 可以只指定其中某几个 排列顺序任意,图形的基本属性,help plot 查看,标题,title(text),例:,title(text, Property1, va
7、lue1, Property2, value2, .),可以指定文本的属性,图形的属性,图形的属性,坐标轴标注,xlabel(text) 或 ylabel(text),例:,图形的属性,添加图例,legend(string1,string2, .),在指定地方添加文本,text(x,y,string,.), legend(cos(x);, text(pi/2,cos(pi/2),leftarrowy=cos(x);,在鼠标指定位置上添加标注,gtext(string1),阅读程序,clc;clear;close all x=0:0.2:2*pi; hold on plot(x,cos(x),r
8、+:); plot(x,sin(x),bd-.); plot(x,2*cos(x),kh-); legend(cos(x),sin(x),2cos(x) xlabel(x);ylabel(y); title(几种三角函数图像比较) text(0.7,1.7,leftarrow2cos(x); text(2.7,0.6,leftarrowsin(x); text(2.2,-0.5,leftarrowcos(x) hold off gtext(这个图形好看了!),图形的属性,图形的属性,坐标控制,axis函数的调用格式为:axis函数功能丰富,常用的格式还有: axis equal:纵、横坐标轴采
9、用等长刻度。 axis square:产生正方形坐标系(缺省为矩形)。 axis auto:使用缺省设置(默认)。 axis off:取消坐标轴。 axis on:显示坐标轴,axis(xmin xmax ymin ymax( zmin zmax),将一个绘图窗口分割成 m*n 个子区域,并 按行 从左至右 依次编号 。p 表示第 p 个绘图子区域。,图形的属性,Matlab 二维特殊图形,对函数自适应采样的绘图函数,fplot函数的调用格式为: 其中fname为函数名,以字符串形式出现,lims为x,y的坐标轴取值范围,tol为相对允许误差,其系统默认值为2e-3。,fplot(fname,
10、lims,tol,选项),x=-1:0.1:1 y=cos(1./x);plot(x,y);figure fplot(cos(1/x),-1,1),例:,ezplot(f),Matlab 符号作图,二维曲线绘图: ezplot,ezplot(f,a,b),ezplot(f(x,y),ezplot(f(x,y),a,b,c,d),ezplot(f,g,a,b),缺省的绘图区间为 -2, 2,例:,ezplot 作图,例 隐函数绘图应用举例。 程序如下: subplot(2,2,1); ezplot(x2+y2-9);axis equal subplot(2,2,2); ezplot(x3+y3-
11、5*x*y+1/5) subplot(2,2,3); ezplot(cos(tan(pi*x), 0,1) subplot(2,2,4); ezplot(8*cos(t),4*sqrt(2)*sin(t),0,2*pi),二维统计分析图,y=rand(6,4)*8; subplot(2,2,1);bar(y) subplot(2,2,2);bar(y,stack) subplot(2,2,3);barh(y,stack),例:,二维统计分析图,y=30 48 36 20 12; pie(y); x=magic(3),pie(x) xx=0.02 0.036 .45 .09 pie(xx),例:,二维统计分析图,x=0:0.1:2 stem(exp(-x.2),fill,r-.),例:,极坐标图,例 绘制r=sin(t)cos(t)的极坐标图,并标记数据点。,t=0:pi/50:2*pi; r=sin(t).*cos(t); polar(t,r,-*);,实验内容,课本p79: 1, 2, 3(3),利用 plot 函数在一个坐标系下绘制以下函数的图形:,y1 用黑色间断线点标记为星号 y2 用红色实线点标记为小方格 y3 用蓝色虚线点标记为小圆圈 在曲线旁边标出各曲线的函数;给出图像的标题,x轴与y轴的坐标说明。 将程序写成.m文件,要求:,