资源描述
后勤工程学院数学教研室 数学建模与数学实验 山东工商学院数学与信息科学学院 MATLAB作图 二维图形 三维图形 图形处理 实例 作 业 Matlab作图是通过描点、连线来实现的,故在 画一个曲线图形之前,必须先取得该图形上的 一系列的点的坐标(即横坐标和纵坐标),然 后将该点集的坐标传给 Matlab函数画图 . 命令为: PLOT(X,Y,S) PLOT(X,Y)-画实线 PLOT(X,Y1,S1,X,Y2,S2,X,Yn,Sn) -将多条线画在一起 X,Y是向量 ,分别表示点集的横坐标和纵坐标 线型 y 黄色 . 点 - 连线 m 洋红 o 圈 : 短虚线 c 蓝绿色 x x-符号 -. 长短线 r 红色 + 加号 - 长虚线 1.曲线图 例 在 0,2*pi用红线画 sin(x),用绿圈画 cos(x). x=linspace(0,2*pi,30); y=sin(x); z=cos(x); plot(x,y,r,x,z,g0) 解 0 1 2 3 4 5 6 7 - 1 - 0.8 - 0.6 - 0.4 - 0.2 0 0.2 0.4 0.6 0.8 1 Matlab liti1 2.符号函数 (显函数、隐函数和参数方程 )画图 (1) ezplot ezplot(x(t),y(t),tmin,tmax) 表示在区间 tminttmax绘制参数方程 x=x(t),y=y(t)的函数图 ezplot(f(x),a,b) 表示在 axb绘制显函数 f=f(x)的函数图 ezplot(f(x,y),xmin,xmax,ymin,ymax) 表示在区间 xminxxmax和 yminyymax绘制 隐函数 f(x,y)=0的函数图 例 在 0,pi上画 y=cos(x)的图形 解 输入命令 ezplot(sin(x),0,pi) Matlab liti25 解 输入命令 ezplot(cos(t)3,sin(t)3,0.2*pi) Matlab liti41 例 在 - 2 , 0 . 5 , 0 , 2 上画隐函数 0)s i n ( xye x 的图 解 输入命令 ezplot(exp(x)+sin(x*y),-2,0.5,0,2) Matlab liti40 例 在 0 , 2 * p i 上画 tx 3c o s , ty 3s i n 星形图 (2) fplot 注意: 1 fun必须是 M文件的函数名或是独立变量为 x的字符串 . 2 fplot函数不能画参数方程和隐函数图形, 但在一个图上可以画多个图形。 fplot(fun,lims) 表示绘制字符串 fun指定的函数在 lims=xmin,xmax的图形 . 例 在 - 1 , 2 上画 )3s i n ( 22 xey x 的 图形 解 先建 M文件 myfun1.m: function Y=myfun1(x) Y=exp(2*x)+sin(3*x.2) 再输入命令: fplot(myfun1,-1,2) Matlab liti43 例 x 、 y 的取值范围都在 - 2 , 2 , 画函数 ta n h ( x ) , s in ( x ) , c o s ( x ) 的图形 Matlab liti28 解 输入命令 : fplot(tanh(x),sin(x),cos(x),2*pi*-1 1 1 1) 例 在 -2,2范围内绘制函数 tanh的图形 Matlab liti42 解 fplot(tanh,-2,2) 3. 对数坐标图 在很多工程问题中 ,通过对数据进行对数转换可以 更清晰地看出数据的某些特征 ,在对数坐标系中描绘数 据点的曲线 ,可以直接地表现对数转换 .对数转换有双对 数坐标转换和单轴对数坐标转换两种 .用 loglog函数可 以实现双对数坐标转换 ,用 semilogx和 semilogy函数可以 实现单轴对数坐标转换 . loglog(Y) 表示 x、 y坐标都是对数坐标系 semilogx(Y) 表示 x坐标轴是对数坐标系 semilogy() 表示 y坐标轴是对数坐标系 plotyy 有两个 y坐标轴,一个在左边,一个在右边 例 用方形标记创建一个简单的 loglog 解 输入命令 : x=logspace(-1,2); loglog(x,exp(x),-s) grid on %标注格栅 Matlab liti37 例 创建一个简单的半对数坐标图 解 输入命令 : x=0:.1:10; semilogy(x,10.x) Matlab liti38 例 绘制 y=x3的函数图、对数坐标图、半对数坐标图 Matlab liti22 返回 三维图形 1、 空间曲线 2、 空间曲面 返回 PLOT3(x,y,z,s) 空 间 曲 线 1、 一条曲线 例 在区间 0, 10*pi画出参数曲线 x=sin(t),y=cos(t), z=t. Matlab liti8 解 t=0:pi/50:10*pi; plot3(sin(t),cos(t),t) rotate3d %旋转 n维向量,分别表示曲 线上点集的横坐标、纵 坐标、函数值 指定颜色、 线形等 PLOT3(x,y,z) 2、 多条曲线 例 画多条曲线观察函数 Z=(X+Y).2. (这里 X, Y=meshgrid(x,y)的 作用是产生 |y|行, |x|列的矩阵 X,Y, 其中 X以向量 x为行、 Y以向量 y为列的 矩阵) Matlab liti9 其中 x, y, z是都是 m*n矩阵,其对应的每一列表示一条曲线 . 解 x=-3:0.1:3;y=1:0.1:5; X,Y=meshgrid(x,y); Z=(X+Y).2; plot3(X,Y,Z) 返回 空 间 曲 面 例 画函数 Z=(X+Y).2的图形 . 解 x=-3:0.1:3; y=1:0.1:5; X,Y=meshgrid(x,y); Z=(X+Y).2; surf(X,Y,Z) shading flat %将当前图形变得平滑 Matlab liti11 (1) surf(x,y,z) 画出数据点( x, y, z)表示的曲面 数据矩阵。分别表示 数据点的横坐标、纵 坐标、函数值 ( 2) Mesh(x,y,z) 解 x=-3:0.1:3; y=1:0.1:5; X,Y=meshgrid(x,y); Z=(X+Y).2; mesh(X,Y,Z) Matlab liti24 例 画出曲面 Z=(X+Y).2在不同视角的网格图 . 画网格曲面 数据矩阵。分别表示 数据点的横坐标、纵 坐标、函数值 (3)meshz(X,Y,Z) 在网格周围画一个 curtain图 (如 ,参考平面 ) 解 输入命令 : X,Y=meshgrid(-3:.125:3); Z=praks(X,Y); Meshz(X,Y,Z) 例 绘 peaks的网格图 Matlab liti36 返回 在图形上加格栅、图例和标注 定制坐标 图形保持 分割窗口 缩放图形 改变视角 图 形 处 理 返回 1、在图形上加格栅、图例和标注 ( 1) GRID ON: 加格栅在当前图上 GRID OFF: 删除格栅 处理图形 ( 2) hh = xlabel(string): 在当前图形的 x轴上加图例 string hh = ylabel(string): 在当前图形的 y轴上加图例 string hh = title(string): 在当前图形的顶端上加图例 string hh = zlabel(string): 在当前图形的 z轴上加图例 string 例 在区间 0,2*pi画 sin(x)的图形,并加注图例“自变量 X”、“函数 Y”、“示意图” , 并加格栅 . 解 x=linspace(0,2*pi,30); y=sin(x); plot(x,y) xlabel(自变量 X) ylabel(函数 Y) title(示意图 ) grid on Matlab liti2 ( 3) hh = gtext(string) 命令 gtext(string)用鼠标放置标注在现有的图上 . 运行命令 gtext(string)时,屏幕上出现当前图形,在 图形上出现一个交叉的十字,该十字随鼠标的移动移动, 当按下鼠标左键时,该标注 string放在当前十交叉的位 置 . 例 在区间 0,2*pi画 sin(x),并分别标注“ sin(x)” ”cos(x)”. 解 x=linspace(0,2*pi,30); y=sin(x); z=cos(x); plot(x,y,x,z) gtext(sin(x);gtext(cos(x) Matlab liti3 返回 2、定制坐标 Axis(xmin xmax ymin ymax zmin zmax) 例 在区间 0.005,0.01显示 sin(1/x)的图形。 解 x=linspace(0.0001,0.01,1000); y=sin(1./x); plot(x,y) axis(0.005 0.01 1 1) Matlab liti4 返回 定制图形坐标 将坐标轴返回到自动缺省值 Axis auto x、 y、 z的最大、最小值 3、图形保持 (1) hold on hold off 例 将 y=sin(x)、 y=cos(x)分别用点和线画出在同一屏幕上。 解 x=linspace(0,2*pi,30); y=sin(x); z=cos(x) plot(x,z,ro:) hold on Plot(x,y) Matlab liti5 保持当前图形 , 以便继续画图到当前图上 释放当前图形窗口 (2) figure(h) 例 区间 0,2*pi新建两个窗口 分别画出 y=sin(x); z=cos(x)。 解 x=linspace(0,2*pi,100); y=sin(x);z=cos(x); plot(x,y); title(sin(x); pause figure(2); plot(x,z); title(cos(x); Matlab liti6 返回 新建 h窗口, 激活图形使其可见,并把它置 于其它图形之上 4、分割窗口 h=subplot(mrows,ncols,thisplot) 划分整个作图区域为 mrows*ncols块(逐行对块访问)并激活第 thisplot块,其后的作图语句将图形画在该块上。 激活已划分为 mrows*ncols块的屏幕中的第 thisplot块,其后 的作图语句将图形画在该块上。 命令 Subplot(1,1,1)返回非分割状态。 subplot(mrows,ncols,thisplot) subplot(1,1,1) 解 x=linspace(0,2*pi,100); y=sin(x); z=cos(x); a=sin(x).*cos(x);b=sin(x)./(cos(x)+eps) subplot(2,2,1);plot(x,y),title(sin(x) subplot(2,2,2);plot(x,z),title(cos(x) subplot(2,2,3);plot(x,a),title(sin(x)cos(x) subplot(2,2,4);plot(x,b),title(sin(x)/cos(x) 例 将屏幕分割为四块,并分别画出 y=sin(x), z=cos(x), a=sin(x)*cos(x),b=sin(x)/cos(x)。 Matlab liti7 返回 5、缩放图形 zoom on 单击鼠标左键,则在当前图形窗口中,以鼠标点中的点为 中心的图形放大 2倍;单击鼠标右键,则缩小 2倍 解 x=linspace(0,2*pi,30); y=sin(x); Plot(x,y) zoom on Matlab liti13 例 缩放 y=sin(x)的图形 zoom off 为当前图形打开缩放模式 关闭缩放模式 返回 6. 改变视角 view ( 1) view(a,b) 命令 view(a,b)改变视角到 (a,b),a是方位角 ,b为仰角。 缺省视角为( -37.5, 30)。 解 x=-3:0.1:3; y=1:0.1:5; X,Y=meshgrid(x,y); Z=(X+Y).2; subplot(2,2,1), mesh(X,Y,Z) subplot(2,2,2), mesh(X,Y,Z), view(50,-34) subplot(2,2,3), mesh(X,Y,Z), view(-60,70) subplot(2,2,4), mesh(X,Y,Z), view(0, 1, 1) Matlab liti10 例 画出曲面 Z=(X+Y).2在不同视角的网格图 . view用空间矢量表示的,三个量只关心它们的比例,与数 值的大小无关, x轴 view( 1, 0, 0), y轴 view( 0, 1, 0), z轴 view( 0, 0, 1)。 ( 2) view( x, y, z) 返回 返回 实验作业 1、在同一平面中的两个窗口分别画出心形线和马鞍面。 要求: 1、 在图形上加格栅、图例和标注 2、 定制坐标 3、以不同角度观察马鞍面 2、以不同的视角观察球面 和 圆柱面 所围区域。 2222 rzyx rxyx 22
展开阅读全文