admin 管理员组文章数量: 887021
2024年2月25日发(作者:js字符串转数字保留小数)
Matlab建模训练3 图形绘制
一、学习二维平面图形的描绘方法
plot函数表
函数 功能
plot(Y,’s’) 以向量Y为纵坐标,Y的元素下标为横坐标,作数值图。S用来指定线型和颜色,可缺省。
plot(X,Y,’s’) 当X,Y都是n维向量时,绘制以X,Y为横、纵坐标向量的曲线。当X为n维向量,Y为n×s或s×n矩阵时,绘制以X为横坐标向量的s条曲线。
plot(x1,y1,’s1’,s2,y每个三元组(x1,y1,’s1’)绘制一条曲线。
2,’s2’,…)
绘图参数
符号 颜色 符号 形状
b 蓝 . 点
k 黑 + 加号
r 红 - 实线
图形的标注
函数 功能
xtable(‘str’) 标注横坐标轴
ytable(‘str’) 标注纵坐标轴
title(‘str’) 标注图形标题
极坐标作图
类型 函数 功能
polar(,r,’s’)
数值图 绘制极角,极径r的极坐标曲线,s表示线形、颜色
函数图ezpolar(f,[a,b])
绘制极坐标函数r=f()在区间[a,b]上r=f()
的曲线,默认区间是[0,2]
1、
在同一窗口绘制正、余弦函数的图形。
2、绘制三叶玫瑰线r=sin(3)
2x0x13、绘制分段函数y的图形。
1x31x
二、学习空间曲线的绘制
数值作图
函数
plot3(X,Y,Z’s’)
功能 备注
绘制以X,Y,Z的对应分X,Y,Z是同维向量或同量为坐标的三维曲线 维矩阵(矩阵的列数条曲线),s是线型、颜色
每四个数组Xi,Yi,Zi,’si’,绘Xi,Yi,Zi是同维向量
制一条曲线
Plot(X1,Y1,Z1,’s1’,’X2,Y2,Z2,’s2’)
符号函数作图
函数
ezploy3(x,y,z)
功能
在默认区域t0,2上绘制x=x(t),y=y(t),z=z(t)的图形
ezploy3(x,y,z,[a,b])
在区间ta,b上绘制x=x(t),y=y(t),z=z(t)的图形
ezploy3(x,y,z,[a,b],’animate’) 同上,且产生动画绘制效果
1、绘制三维螺旋线
xtsintxtcostytcost,0t6及ytsint,0t6.
ztzt2、
绘制空间曲线xtsint,ycost,zt
三、学习空间曲面的绘制
数值作图
函数
mesh(Z)
mesh(X,Y,Z)
meshz(X,Y,Z)
surf(Z)
surf(X,Y,Z)
surfc(X,Y,Z)
功能
以Z矩阵的列、行下标为自变量x,y的值,画网格图
以矩阵X,Y,Z为坐标的网格图
同上,在网格下方绘制等高线
同mesh(Z),绘制三维表面图
绘制以矩阵X,Y,Z为坐标的表面图
绘制表面图及等高线
例 绘制函数zxsinx2y2的图形,观察4个子图的不同特征。
[X,Y]=meshgrid(-4:0.2:4);
Z=X.*sin(sqrt(X.^2+Y.^2));
subplot(2,2,1)
mesh(Z)
subplot(2,2,2)
mesh(X,Y,Z)
subplot(2,2,3)
surf(X,Y,Z)
subplot(2,2,4)
surfc(X,Y,Z)
符号函数作图
函数
ezmesh(f)
功能
在默认区域2x,y2上画z=f(x,y)的网格图
ezmesh(f,[a,b])
ezmesh(f,[a,b,c,d])
ezmesh(f,[a,b,c,d],’circ’)
在ax,yb上画z=f(x,y)的网格图
在axb,cyd上画z=f(x,y)的网格图
在圆域(圆心为22abcd,,半径22badcr)上画同上网格图
22ezmesh(x,y,z)
在2s,t2上画由参数方程x=x(s,t),y=y(s,t),z=z(s,t)确定的网格图
ezmesh(x,y,z,[a,b])
ezmesh(x,y,z,[a,b,c,d])
在as,tb上画同上网格图
在asb,ctd上画同上网格图
ezmesh(x,y,z,[a,b,c,d],’circ’) 在圆域上画同上网格图
ezmesh(f,[a,b]) 画带等高线的三维网格图
若自变量不是x,y,自变量的取值顺序按字母顺序排列。
ezsurf命令彩色表面图,调用格式与ezmesh相同。
view函数
函数 功能
view(az,el) 通过方位角、俯视角设置视点
view([x,y,z]) 通过直角坐标设置视点
view(2) 设置二维图形的视角,默认az0,el90
view(3) 设置二维图形的视角,默认az37.5,el30
例 分别用命令ezmesh(2x2,2y2)和ezsurf(0x4,1y4)作函数z=xy的图形,并观察4个子图的不同特征。
程 序
syms x y
z=x*y;
subplot(2,2,1)
ezsurf(z,[-2,2])
subplot(2,2,2)
ezmesh(z,[-2,2],'circ')
subplot(2,2,3)
ezsurf(z,[0,4,-1,4])
subplot(2,2,4)
ezmesh(z,[0,4,-1,4],'circ')
例 绘制函数zxex2运 行 结 果
y2的图形,并在各坐标设置点观察图形。
运 行 结 果
az1 =90
el1 =0
az2 =180
el2 =0
az3 =0
el3 =90
程 序
z='x*exp(-x^2-y^2)';
subplot(2,2,1)
ezsurf(z)
subplot(2,2,2)
ezsurf(z)
view([1,0,0])
[az1,el1]=view
subplot(2,2,3)
ezsurf(z)
view([0,1,0])
[az2,el2]=view
subplot(2,2,4)
ezsurf(z)
view([0,0,1])
[az3,el3]=view
二维符号等高线图
函数
ezcontour(f)
功能
在默认区域0x,y2上画z=f(x,y)的等高线图
ezcontour(f,[a,b])
ezcontour(f,[a,b,c,d])
在ax,yb上画z=f(x,y)的等高线图
在axb,cyd上画z=f(x,y)的等高线图
绘制z=f(x,y)的nn个网格的等高线图,nezcontour(…,n)
ezcontourf(…,n)
二维数值等高线图
函数
contour(z)
的默认值是60
绘制z=f(x,y)的nn个网格的经过填充的等高线图
功能
绘制矩阵Z的二维等高线,x,y坐标由z的列、行下标确定
contour(z,n) 绘制同上等高线,指定等高线为n条,缺省值是8
contour(z,v) 绘制z的等高线,等高线位于向量v指定的值处,等高线的条数为length(v)
contour(X,Y,Z) 绘制z的二维等高线,若X,Y是向量,则X,Y确定坐标轴的范围;若X,Y是矩阵,则X(1,:)和Y(:,1)确定坐标轴的范围
contour(X,Y,Z,’s’) 同上,s指定线型、颜色
c=contour(…) 绘制等高线,并返回等高线矩阵c,其中(…)表示上述各类参数
contourf(X,Y,Z) 绘制填充二维等高线
contour3绘制三维等高线,调用格式同contour
例 绘制函数zsinxcos(xy),x,,y,的二维等高线和填充2222等高线。
程 序
z='sin(x)+cos(x+y)';
figure(1)
ezsurf(z,[-pi/2,pi/2])
figure(2)
subplot(1,2,1)
ezcontour(z,[-pi/2,pi/2])
subplot(1,2,2)
ezcontourf(z,[-pi/2,pi/2])
例 绘制多峰函数z31xe2x2y12运 行 结 果
1x12y2x35x2y2,在10xyee53x,,y,上的图形以及二维等高线、二维填充等高线和三维等高线的图形。
程 序
x=linspace(-pi,pi,50);
[X,Y]=meshgrid(x);
Z=3.*(1-X).^2.*exp(-X.^2-(Y+1).^2)-10*(X./5-X.^3-Y.^5).*exp(-X.^2-Y.^2)...
-1/3.*exp(-(X+1).^2-Y.^2);
figure(1)
surf(X,Y,Z)
title('多峰函数')
程 序
figure(2)
c=contour(X,Y,Z,8);
clabel(c)
title('多峰函数标注高度的二维等高线')
运 行 结 果
运 行 结 果
程 序
figure(3)
contourf(X,Y,Z,12)
title('多峰函数的二维等高线')
程 序
figure(4)
contour3(X,Y,Z,16)
grid off
title('多峰函数的三维等高线')
运 行 结 果
运 行 结 果
梯度
函数 功能
说明
[Fx,Fy]=gradiend(F,h)
quiver(x,y,u,v,s)
求二元函数的梯度 F是函数的数值矩阵,h是步长,默认值为1
在xOy平面上画(u,v)表示S是箭头的长度
的箭头
例(1)绘制曲面z=x2+y2的图形和等高线的图形;(2)绘制梯度的图形;(3)绘制从点(1,2)出发的梯度线;(4)将等高线、梯度、梯度线绘制在同一图形窗口。
解:用等长的折线段来模拟梯度线。设步长t,从点pk(xk,yk)出发,沿梯度方向前进t得到点Pk+1(xk+1,yk+1),即
xk1xkfkxk,yktk0,连接P0,P1,P2,…,即得梯度线的图形。
yk1ykfyxk,ykt① 绘制曲面与等高线
程序:
[X,Y]=meshgrid(-6:0.5:6);
Z=X.^2-Y.^2;
subplot(2,2,1)
surfc(Z)
② 绘制梯度的图形程序:
程序:
[FX,FY]=gradient(Z,0.5);
subplot(2,2,2)
quiver(X,Y,FX,FY,0.8)
③ 绘制从点(1,2)出发的梯度线
程序:
subplot(2,2,3)
syms x y
f=x^2-y^2;
fd=[diff(f,x) diff(f,y)];
t=0.025;
x0=ones(1,100);
y0=x0*2;
for i=1:100
fd0=subs(fd,{x,y},{x0(i),y0(i)});
x0(i+1)=x0(i)+fd0(1)/sqrt(fd0(1)^2+fd0(2)^2)*t;
y0(i+1)=y0(i)+fd0(2)/sqrt(fd0(1)^2+fd0(2)^2)*t;
end
plot(x0,y0)
④ 将等高线、梯度、梯度线绘制在同一图形窗口
程序:
subplot(2,2,4)
plot(x0,y0,'r',x0(1),y0(1),'r*')
hold on
contour(X,Y,Z,10,'b')
hold on
quiver(X,Y,FX,FY,0.9)
hold off
运行结果为:
练习:
编程作下列曲面绘图:
1用平面曲线r=2+cos(t)+sin(t),t∈(0,π)绘制旋转曲面
2用直角坐标绘制双曲抛物面曲面网线图,z2=xy (-3 3用直角坐标绘制曲面表面图,z3x22y (-5 4用直角坐标绘制修饰过的光滑曲面曲面:z4=sin(x)-cos(y) x与y 的取值在(-π,π) 5用连续函数绘图方法绘制曲面z5x2y26sin(2x),x[-2pi,2pi], y[-2pi,2pi],并作图形修饰。 6、绘制zx2e(xy)在定义域x=[-2,2],y=[-2,2]内的曲面。(利用meshgrid) 7、在xy平面内选择区域[-8,8]×[-8,8],在一个figure中绘制4种三维曲面 22 zsin(x2y2)/(x2y2)1/2)mesh,meshc,meshz,surf 8、画出下列函数的曲面及等高线: z=x^2+y^2+sin(xy)
版权声明:本文标题:Matlab建模训练3 图形绘制 内容由网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://www.freenas.com.cn/free/1708858668h532935.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论