钟培华
数学建模基础
第 5 讲 MATLAB 图形功能
第五讲
1.平面图形描绘相关命令 (1) plot 利用点 ( xi
特殊函数图形与描绘
y i ) i = 1,2,
, n 作平面图形
调用格式 plot ( x, y, s ) ,其中 x, y 是同维的向量,是设置图形属性的选项。 例 1: x=-pi:pi/10:pi; y=sin(x); plot(x,y,'--r*','linewidth',2,'markeredgecolor','b''markerfacecolor','g') 调用格式:plot(x1,y1,x2,y2,x3,y3)或 plot(x1,y1,s,x2,y2,s…)
线型 — : —. —— 实线 虚线 点划线 间断线 . O
数据点形状 点 小圆圈 叉号 加号 星号 方格 菱形 朝上三角 朝下三角 朝右三角 朝左三角 五角星 六角星 y m c r g b w k
颜控制 黄 棕 青 红 绿 蓝 白 黑
×
+ * s d
∧ ∨
> < p h (2)fplot 格式
函数利用函数表达式画函数图形 fplot( ‘函数表达式’ x min , x max ]) ,[matlab直方图
>> fplot('sin(x)./x',[-0.1,0.1]) % lim
sin x 存在吗? x →0 x 1 >> fplot('sin(1./x)',[-0.1,0.1]) % lim sin 存在吗? x →0 x
>> fplot('sin(1/x)',[-0.1,0.1])
3 2
思考:化出 f ( x) = ( 2 x − 5) x 的图形,能指出极值点吗?与华师大数学分析(上) P 例 1 图比 143 较,你画对没有? >> fplot('(2*x-5)*(x^2)^(1/3)',[-2,3])
补充:ezplot(f,[ x min , x max , y min , y max ] ]
1
钟培华
数学建模基础
第 5 讲 MATLAB 图形功能
%画出 f(x,y)=0 在 [ x min , x max ] × [Ymin , Ymax ] 上的图形 例如:>>ezplot(‘u^2+v^2=1’,[-2,3,2,3]) %画 u + v = 1 的图
2 2
如:ezplot(‘x(t)’,’y(t)’,[tmin,tmax]
%画 ⎨
⎧ x = x(t ) ⎩ y = y (t )
t min ≤ t ≤ t max 上的图
>> ezplot('2*sin(t)','5*cos9t)',[0,2*pi])
%
x2 y2 + =1 2 2 52
(3)对数图形
log log( x, y )
%x, y 同时取以 10 为对数再画图
semi log x( x, y ) %x 取以 10 为底的对数,y 不变再画图 semi log y ( x, y )
%x 不变,y 取以 10 为底对数,再画图
x=1:0.1:9;y=x;plot(x,y),pause loglog(x,y,’r*--‘),pause,semilog(x,y,’b+-‘), pause,semilog y(x,y,’k*--‘) (4) >> >> >> >> 极坐标图形 polar( θ , ρ )
t=0:0.1:pi;tt=2*sin(t); polar(t,tt); t=0:0.01:2*pi; polar(t,sin(6*t)) % ρ = f (θ )
补充:ezpolar(f)
θ ∈ [0,2π ]
ezpolar(‘f(sita)’,[a,b]) % ρ = f (θ ), a ≤ θ ≤ b >> ezpolar('2*sin(t)',[0,pi]) % ρ = 2 sin(t )
t ∈ [0, π ]
(5) 产生随机数画频数直方图 normrnd 生产符合正态分布的随机数 normrnd(u,v,m,n) %u 表示期望 ,v 表示方差,m 行,n 列 randn %生成标准正态分布数据 rand %生成平均分布数据 >> >> >> >> yn=randn(30000,1);x=min(yn):0.2:max(yn); subplot(121),hist(yn,x); yu=rand(30000,1);subplot(122); hist(yu,25)
2
钟培华
数学建模基础
第 5 讲 MATLAB 图形功能
(6)
画子图 subplot(m,n,p), 221 222 212
m,n,p 是三个自然数 121 222 224
(7) 用函数 patch 绘填充图 fplot(‘hunps’,[0,2],’b’), hold on patch( [0.5,0.5:0.02:1] [0,humps(0.5:0.02:1),0],’r’] hold off grid on (8)用 fill 来绘制类似的填充图 x=0:pi:2*pi;y=sin(x);plot(x,y,’r’) hold on, x1=0:pi/20:1;y1=sin(x1); fill( [x1,1],[y1,0],’g’) 2、三维图形
⎛ 1 2 3⎞ ⎜ ⎟ (1) 绘制 A= ⎜ 4 5 6 ⎟ 的三维饼状图。 ⎜7 8 9⎟ ⎝ ⎠
>> A=[1 2 3;4 5 6;7 8 9]; %数据 9 个 >> ex=[1 0 0;4 0 0;0 8 0]; %确定元素向量 >> pie3(A,ex) %绘制饼状图,每一列画在一块 (2)绘制三维曲线图: Plot3 绘制三维曲线图,用法与 plot 类似 >>x=0:pi/30:20*pi; y=sin(x),z=cos(x); >>plot3(x,y,z,’r*--’),xlabel(‘x 轴’); >>ylabel(‘y 轴’),zlabel(‘z 轴’),tittle(‘螺旋线’)
⎧ x = sin t ⎪ 补充:ezplot3 绘制三维曲面图例:. ⎨ y = cos t 0 ≤ t ≤ 6π ⎪ z =t ⎩
>>ezplot3(‘sin(t)’,’cos(t)’,’t’,[0,6*pi]) 思考:如何绘制(1) z = 2 x + 3 y 与 z = 3 −
2 2
x 2 + y 2 ;.(2) z = 2 x 2 + 3 y 2 与 z = 3 − ( x 2 + y 2 ) 的
交线图形. 1、 Matlab 图形命令 命令 tittle xlabel ylabel 4、生成网格函数 功能 设置图形标题 x 轴标注 y 轴标注 meshgrid 命令 text grid on hold on 功能 标注数据点 加上图形网格线 保持原图像
3
钟培华
数学建模基础
第 5 讲 MATLAB 图形功能
[u,v]=meshgrid(x,y) %利用向量 x,y 生成网格矩阵,实际上是讲 x 复制 n 次赋 u, 将 y 转置 m 次给 v. 即 u,v 都是 m*n 矩阵, u 每行元素相同, v 每列元素相同. n=length(g) m=length(x); [u,v]=meshgrid(x) %利用向量 x 生成网格方矩阵 u,v 5、peaks 高斯分布函数 z=peaks %生成 49 阶的高斯分布方阵; z=pea
ks(n) %生成 n 阶的高斯分布方阵; z=peaks(v) %生成 n 阶高斯分布方阵, n=lebgeh(v); [x,y,z]=peaks(n) %生成一个 n 阶高斯分布方阵 z, 并给出相应的 X,Y 矩阵. 例1 >>x=[1 2 3 4]; y=[10 11 12 13 14]; >>[u,v]=meshgrid(x,y)
⎛1 ⎜ ⎜1 u= ⎜1 ⎜ ⎜1 ⎜1 ⎝
例2
2 2 2 2 2
3 3 3 3 3
4⎞ ⎟ 4⎟ 4⎟ ⎟ 4⎟ 4 ⎟ 5*4 ⎠
⎛10 ⎜ ⎜ 11 v = ⎜12 ⎜ ⎜13 ⎜14 ⎝
10 11 12 13 14
10 11 12 13 14
10 ⎞ ⎟ 11 ⎟ 12 ⎟ ⎟ 13 ⎟ 14 ⎟ ⎠
>>[x,y,z]=peaks(5)
%peaks(5)
6、绘制三维网格图或曲面图形使用的函数: 函数调用格式 功能说明 在 x,y 决定网格区域上绘制数据 z 的网 格图.每一点由矩阵 c 确定, c 缺省时, c=z 在系统默认的颜和网格区域下绘制数 据 z 的网格图 绘制网格曲线图,并设定制定属性的值 绘制三维网络图,并在 xoy 平面绘制相应 等高线 绘制三维网格图,并在网格图周围绘制 垂直水平面的参考平面. 在系统默颜和网格区域绘制曲面图. 类似 类似 类似 绘制 z=f(x,y) [− 2π ,2π ]× [ −2π ,2π ] 绘 制 曲 面 x=x(s,t)’,’y=y(s,t)’,’z=z(s,t) [smin,smax]×[tmin,tmax]
mesh(x,y,z,c)
mesh(z) mesh(x,y,z,’proname’,’prowal’,…) meshc(x,y,z) meshz(x,y,z) surf(z) surf(x,y,z) surfc(x,y,z) surf(x,y,z,c) ezmesh(f) ezmesh(‘x(s,t)’,’y(s,t)’,’z(s,t)’,… [smin,smax,tmin,tmax])
4
钟培华
数学建模基础
第 5 讲 MATLAB 图形功能
ezmesh(…,’circ’)
画曲面图形,曲面投影为 xoy 面上的圆, 圆心在原点.
运行下列 m 文件(有错误进行修改) huatu2.m X=-3:0.13; Y=-4:0.1:4; [X,Y]=meshgrid(x,y); z=X.^2+Y.^2; mesh(z), pause, mesh(X,Y,Z), pause, mesh(X,Y,Z,-Z), pause %注意颜变, 变- 红, mesh(X,Y,Z), pause, mesh(z,Y,Z), pause, ezmesh(‘x.^2+y.^2’,’circ’) ezmesh(‘x.^+y.^2’,’circ’) contour3(X,Y,Z,30) 6、 其他三位图形 函数 contour3(z,n) contour3(x,y,z,n) sphere(n) [x,y,z]=sphere(n) [x,y,z]=cylinder [x,y,z]=cylinde(r,n) scatter3(x,y,z,s,c) %z = x + y
2
绿-- 兰,
2
%z = x + y
2
2
%10 条等高线
功能 绘制具有 n 条等值线的矩阵 z 的等值线图 用 z y 确定 x,y 范围,绘制 z 的等值线图,n 为等值线条数 建立 n*n 个面组成的球面, 不 绘 制 球 面 , 给 出 球 面 坐 标 的 矩 阵 , 矩 阵 为 (n+1) 阶 方 阵 , 用 mesh,surf 及 x,y,z 可绘制球面. 给出半径为 1 的圆柱形图的 x,y,z 坐标,在每个圆周上取 20 个等距 点 给出以半径 r 确定的轮廓线的柱面的坐标 x,y,z,每个圆周上取 20 个等距离点 绘制数据 x,y,z 的散点图, x,y,z,s,c 有相大小,s 表示数据点大小, c 表颜 绘制数据序列 z 的火柴杆图,若 z 为行向量,则自动建立 x,y 向量, 并在 x 轴平行方向上等向距离绘制 z 元素火柴杆图,若 z 是列向量 则在 y 方向是等距离绘制火柴杆图 在 X,Y,Z 的面位置上绘制火柴杆图 绘制火柴杆图并填充顶端笑圆圈 用已给 x,y,z 数据绘制瀑布图
stem3(z) stem3(x,y,z) stem3(x,y,z,’filled’) waterfall(x,y,z)
例 1:自行确定数据绘制柱行图。 t=0:pi:2*pi; [x,y,z]=cylinder(t.*sint(t)); title(‘t.*sint’), [x,y,z]=cylinder(t.^2); title(‘t^2’) cylinder(t.^2), title(‘t.^2’),pause cylinder(t.*cot(t)), title(‘t.*cost’),pause cylinder(t.*exp(t)),title(‘t.e ’),pause
5
t
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论