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)

2x0x13、绘制分段函数y的图形。

1x31x

二、学习空间曲线的绘制

数值作图

函数

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)

功能

在默认区域t0,2上绘制x=x(t),y=y(t),z=z(t)的图形

ezploy3(x,y,z,[a,b])

在区间ta,b上绘制x=x(t),y=y(t),z=z(t)的图形

ezploy3(x,y,z,[a,b],’animate’) 同上,且产生动画绘制效果

1、绘制三维螺旋线

xtsintxtcostytcost,0t6及ytsint,0t6.

ztzt2、

绘制空间曲线xtsint,ycost,zt

三、学习空间曲面的绘制

数值作图

函数

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为坐标的表面图

绘制表面图及等高线

例 绘制函数zxsinx2y2的图形,观察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)

功能

在默认区域2x,y2上画z=f(x,y)的网格图

ezmesh(f,[a,b])

ezmesh(f,[a,b,c,d])

ezmesh(f,[a,b,c,d],’circ’)

在ax,yb上画z=f(x,y)的网格图

在axb,cyd上画z=f(x,y)的网格图

在圆域(圆心为22abcd,,半径22badcr)上画同上网格图

22ezmesh(x,y,z)

在2s,t2上画由参数方程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])

在as,tb上画同上网格图

在asb,ctd上画同上网格图

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) 设置二维图形的视角,默认az0,el90

view(3) 设置二维图形的视角,默认az37.5,el30

例 分别用命令ezmesh(2x2,2y2)和ezsurf(0x4,1y4)作函数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')

例 绘制函数zxex2运 行 结 果

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)

功能

在默认区域0x,y2上画z=f(x,y)的等高线图

ezcontour(f,[a,b])

ezcontour(f,[a,b,c,d])

在ax,yb上画z=f(x,y)的等高线图

在axb,cyd上画z=f(x,y)的等高线图

绘制z=f(x,y)的nn个网格的等高线图,nezcontour(…,n)

ezcontourf(…,n)

二维数值等高线图

函数

contour(z)

的默认值是60

绘制z=f(x,y)的nn个网格的经过填充的等高线图

功能

绘制矩阵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

例 绘制函数zsinxcos(xy),x,,y,的二维等高线和填充2222等高线。

程 序

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])

例 绘制多峰函数z31xe2x2y12运 行 结 果

1x12y2x35x2y2,在10xyee53x,,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),即

xk1xkfkxk,yktk0,连接P0,P1,P2,…,即得梯度线的图形。

yk1ykfyxk,ykt① 绘制曲面与等高线

程序:

[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用直角坐标绘制曲面表面图,z3x22y (-5

4用直角坐标绘制修饰过的光滑曲面曲面:z4=sin(x)-cos(y) x与y

的取值在(-π,π)

5用连续函数绘图方法绘制曲面z5x2y26sin(2x),x[-2pi,2pi],

y[-2pi,2pi],并作图形修饰。

6、绘制zx2e(xy)在定义域x=[-2,2],y=[-2,2]内的曲面。(利用meshgrid)

7、在xy平面内选择区域[-8,8]×[-8,8],在一个figure中绘制4种三维曲面

22

zsin(x2y2)/(x2y2)1/2)mesh,meshc,meshz,surf

8、画出下列函数的曲面及等高线: z=x^2+y^2+sin(xy)


本文标签: 绘制 等高线 图形 函数 曲面