试验22三维数据的绘图.docx

上传人:b****5 文档编号:14839922 上传时间:2023-06-27 格式:DOCX 页数:20 大小:385.19KB
下载 相关 举报
试验22三维数据的绘图.docx_第1页
第1页 / 共20页
试验22三维数据的绘图.docx_第2页
第2页 / 共20页
试验22三维数据的绘图.docx_第3页
第3页 / 共20页
试验22三维数据的绘图.docx_第4页
第4页 / 共20页
试验22三维数据的绘图.docx_第5页
第5页 / 共20页
试验22三维数据的绘图.docx_第6页
第6页 / 共20页
试验22三维数据的绘图.docx_第7页
第7页 / 共20页
试验22三维数据的绘图.docx_第8页
第8页 / 共20页
试验22三维数据的绘图.docx_第9页
第9页 / 共20页
试验22三维数据的绘图.docx_第10页
第10页 / 共20页
试验22三维数据的绘图.docx_第11页
第11页 / 共20页
试验22三维数据的绘图.docx_第12页
第12页 / 共20页
试验22三维数据的绘图.docx_第13页
第13页 / 共20页
试验22三维数据的绘图.docx_第14页
第14页 / 共20页
试验22三维数据的绘图.docx_第15页
第15页 / 共20页
试验22三维数据的绘图.docx_第16页
第16页 / 共20页
试验22三维数据的绘图.docx_第17页
第17页 / 共20页
试验22三维数据的绘图.docx_第18页
第18页 / 共20页
试验22三维数据的绘图.docx_第19页
第19页 / 共20页
试验22三维数据的绘图.docx_第20页
第20页 / 共20页
亲,该文档总共20页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

试验22三维数据的绘图.docx

《试验22三维数据的绘图.docx》由会员分享,可在线阅读,更多相关《试验22三维数据的绘图.docx(20页珍藏版)》请在冰点文库上搜索。

试验22三维数据的绘图.docx

试验22三维数据的绘图

实验2.1二维数据的绘图----一元函数的作图

5.1.1实验目的

掌握MATLAB软件中二维数据的绘图方法。

实验内容

1、平面曲线的作图----基本绘图命令plot

(1)plot(Y)

这是plot命令中最为简单的形式。

当Y为向量时,以Y的元素为纵坐标,元素相应的序列号为横坐标绘制出连线。

若Y为实矩阵,则按照列绘出每列元素和其序列号的对应关系,曲线数等于矩阵的列数。

若Y为复矩阵,则按列以每列元素的实部为横坐标以虚部为纵坐标,绘出曲线。

曲线数等于矩阵的列数。

(2)plot(X,Y)

当X和Y为同维向量时,以X为横坐标,Y为纵坐标绘制曲线;当X是向量,Y是每行元素数目和X维数相等的矩阵时,将绘出以X为横坐标,以Y中每行元素为纵坐标的多条曲线,曲线数等于矩阵的行数。

(3)plot(X,Y1,X,Y2,……,X,Yn)

这个命令能够绘制多条曲线,每条曲线分别以X,Y为横纵坐标。

各条曲线互不影响。

采用plot(X,Y1,X,Y2,……,X,Yn)命令能够绘制多重曲线,而plot(X,Y)中当X是向量,Y是矩阵时,也能够绘制多重曲线,事实上,MATLAB还提供了命令,可以在已经绘好的图形上加上新的图形。

当图线太多时,我们可以在命令中对线形和颜色进行设定,达到良好的区分效果。

例如plot(X,Y)命令可以改为plot(X,Y,S)其中S表示线型和颜色。

线型和颜色种类见表2.1。

表2.1线型和颜色种类

颜色

线型

标记类型

r(red)红色

g(green)绿色

b(blue)蓝色

y(yellow)黄色

k(black)黑色

w(white)白色

c(cyan)青色

m(magenta)品红

-实线(默认)

--双划线

虚线

-.点划线

+加号

*星号

.实点

o小圆圈(字母)

x交叉号

d棱形

s正方形

p正五角星

h正六角星

2、函数绘图命令:

fplot(‘function’,limits)——在指定的范围limits=[xmin,xmax]内画出函数名为function的一元函数图形。

注意fplot与plot的区别:

fplot的指令可以用来自动的画一个已定义的函数图形,而无须产生绘图所须要的一组数据作为变数。

fplot采用自适应步长控制来画出函数function的示意图,在函数的变化激烈的区间,采用小的步长,否则采用大的步长。

总之,使计算量与时间最小,图形尽可能精确。

3、符号函数的绘图命令:

ezplot(‘f(x)’,[xmin,xmax])——绘出函数f(x)从xmin到xmax区间的图形;

ezplot(‘f(x,y)’,[xmin,xmax,ymin,ymax])——绘出隐函数f(x,y)=0在[xmin,xmax]与[ymin,ymax]xmin区间上的图形;

ezplot(‘x(t)’,’y(t)’,[tmin,tmax])——在区间[tmin,tmax]上绘出参数方程x=x(t),y=y(t)的函数图形。

【例题2.1】分别用不同的作图命令,画出函数

在[-2,2]上的图形。

解:

(1)用plot作图命令,程序为:

x=-2:

0.1:

2;

y=x.^3-3*x;

plot(x,y)

gridon%加网格线

axisequal%x,y轴单位刻度相等

运行结果如图2.1所示。

图2.1

(2)用fplot作图命令,程序为:

fplot('x^3-3*x',[-2,2])%字符串'x^3-3*x'表示函数

axisequal

gridon

运行结果如图2.1所示。

(3)用ezplot作图命令,程序为:

ezplot('x^3-3*x',[-2,2])

axisequal

gridon

运行结果如图2.1所示。

说明:

(1)三种方法得到相同的图形,但不能认为三个命令的功能完全相同。

(2)plot与fplot绘图可对图形的线形、颜色作出控制,ezplot则不能。

【例题2.2】绘出函数

的函数图像。

题目分析:

函数

是由数学表达式表示的函数,可考虑选用fplot作图命令。

解:

选用fplot作图命令,程序为:

fplot('sin(x)./x',[-2020-0.51.5])%作图并显示x轴、y轴的范围

gridon

xlabel('x轴');%x轴注解

ylabel('y轴');%y轴注解

title('y=sinx/x');%图形标题

运行结果如图2.2所示。

图2.2

说明:

用fplot作图命令,可以绘出比较精确的图形,特别对那些变化比较剧烈的函数。

(2)程序中对函数图形的属性作了一些处理,比如添加数轴名、标题等。

【例题2.3】分别绘出参数函数

与隐函数

图像。

题目分析:

对参数函数与隐函数的作图,可考虑选用ezplot作图命令。

解:

选用ezplot作图命令,程序为:

subplot(2,1,1);%窗口分割为二行一列,且在第一行显示图形

ezplot('cos(3*t)','sin(5*t)',[0,2*pi])

gridon

subplot(2,1,2);%在第二行显示图形

ezplot('4*x^2+16*y^2-3',[-1.5,1.5,-1,1])

gridon

运行结果如图2.3所示。

图2.3

说明:

(1)图形窗口的分割一般用命令是subplot(m,n,k),表示将窗口分割成m*n块,并在第k块中显示当前图形。

(2)对隐函数作图要注意将二元关系式化成

的形式。

(3)ezplot作图命令一般较适宜画不太精确的图形。

【例题2.4】为了分析X射线的杀菌作用,用200千伏的X射线来照射细菌,每次照射6分钟,照射次数记为t,照射后的细菌数y如下表所示:

t

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

y

352

211

197

160

142

106

104

60

56

38

36

32

21

19

15

试在O—ty坐标系中绘出散点图。

题目分析:

此题给出的是二维数据,因此选用plot作图命令即行了。

解:

选用plot作图命令,程序为:

T=[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15];

Y=[352,211,197,160,142,106,104,60,56,38,36,32,21,19,15];

plot(t,y,'-o')

gridon

xlabel('次数t');ylabel('细菌数y');title('原始数据散点');

legend('原始数据')

运行结果如图2.4所示。

图2.4

说明:

(1)plot(t,y,'-o')对图形的线形作了控制,'-o'表示以O表示数据点,且点与点之间用短线连结。

(2)legend('原始数据')是给图形增加标签注解,以便意义更直观明确。

实验2.2三维数据的绘图

实验目的

学会MATLAB软件中三维图形(二元函数)、曲面图形、等高线图的绘图方法。

三维图形包括空间曲面、空间曲线、等高线图等图形。

函数z=f(x,y)的图像一般是一张空间曲面.

一般说来,参数方程组

的图像是空间一条曲线。

如果二元函数z=f(x,y)在平面数集D上有定义,空间曲线

称为函数z=f(x,y)的等高线。

实验内容

1.空间曲线的作图

绘制空间曲线命令:

plot3(x,y,z,S)——x,y,z是n维向量,分别表示曲线上点集的横坐标、纵坐标、与竖坐标;S是可选的字符串,用来指定颜色、标记符号和/或线形。

【例题2.5】画出参数曲线

的图形。

题目分析:

由于参数方程表示的是空间曲线,所以可用plot3命令画出图形,根据plot3命令格式要求,先产生参数t向量,再生成向量X、Y、Z。

解:

用plot3作图命令,程序为:

t=0:

pi/50:

10*pi;

plot3(sin(t),cos(t),t)

title(‘螺旋线‘),xlabel(‘sint(t)‘),ylabel(‘cos(t)‘),zlabel(‘t‘);

text(0,0,0,‘原点‘)%在坐标原点(0,0,0)处注解

gridon

运行结果如图2.5所示。

图2.5

说明:

(1)从例中可明显看出,二维图形的所有基本特性在三维中仍都存在,如坐标网格、标题等。

(2)plot3(X,Y1,S1,X,Y2,S2,……,X,Yn,Sn)命令可将多条曲线画在一起。

【例题2.6】设曲面

,画出与平面

相交的多条曲线。

题目分析:

显然平面

与x轴的交点坐标构成向量x=(-1.5,-1.0,-0.5,0,0.5,1.0,1.5),由命令meshgrid的用法可知,可以用该命令生成二元函数z=f(x,y)中x-y平面上的矩形定义域中数据点矩阵X和Y。

解:

选用plot3作图命令,程序为:

clear

x=-1.5:

0.5:

1.5;

y=-2:

0.5:

2;

[X,Y]=meshgrid(x,y);%生成数据点矩阵X和Y

Z=X.^2+Y.^2;

plot3(X,Y,Z)

title(‘截痕线‘),xlabel(‘x‘),ylabel(‘y‘),zlabel(‘z‘)

gridon

运行结果如图2.6所示。

图2.6

说明:

从图形容易看出这些曲线是抛物线。

2.空间曲面的作图

(1)绘制空间曲面命令:

surf(x,y,z)——x,y,z是n维向量,分别表示曲线上点集的横坐标、纵坐标与竖坐标。

(2)绘制空间网格曲面命令:

mesh(x,y,z)——x,y,z是n维向量,分别表示曲线上点集的横坐标、纵坐标、与竖坐标。

注意:

空间曲面绘图时,首先要利用meshgrid命令在xoy面生成网格线,才可以绘图。

【例题2.7】绘出旋转抛物面

的图形。

解法1:

选用surf作图命令,程序为:

x=-2:

0.05:

2;

y=-2:

0.05:

2;

[X,Y]=meshgrid(x,y);%生成数据点矩阵X和Y

Z=X.^2+Y.^2;

surf(X,Y,Z)

gridon

shadingflat%将当前的图形变平滑

运行结果如图2.7所示。

图2.7

解法2:

选用mesh作图命令,程序为:

x=-2:

0.1:

2;y=-2:

0.1:

2;

[X,Y]=meshgrid(x,y);Z=X.^2+Y.^2;

mesh(X,Y,Z)

运行结果如图2.8所示。

图2.8

说明:

(1)由于作图范围

是平面上的矩形区域,因此画出的图形位于长方体区域

内。

(2)程序中对函数图形的属性作了一些处理,比如使当前的图形变平滑等。

利用在x-y平面的矩形网格点上的z轴坐标值,MATLAB定义了一个网格曲面。

MATLAB通过将邻接的点用直线连接起来形成网状曲面,其结果好象在数据点有结点的鱼网。

3、曲面的等高线图

等高线命令:

contour(z)——把矩阵z中的值作为一个二元函数的值,等高曲线是一个平面的曲线,平面的高度v是Matlab自动取的;

[C,h]=contour(x,y,z,n)——(x,y)是平面z=0上点的坐标矩阵,z为相应点的高度值矩阵,有n条等高线。

【例题2.8】在范围

内,绘出曲面

的等高线。

题目分析:

由题目的要求,选用contour作图命令。

解:

程序为:

x=-2:

0.2:

2;y=-2:

0.2:

3;

[X,Y]=meshgrid(x,y);

Z=X.*exp(-X.^2-Y.^2);

[C,h]=contour(X,Y,Z);

clabel(C,h);%给等值线图标上高度值(见图2.9)

colormapcool;%图形窗口的色图

figure

(2);%新建图形窗口

(2),以显示下面的所作图形。

subplot(2,1,1);

mesh(X,Y,Z);%画出立体网状图

subplot(2,1,2);

surf(X,Y,Z);%画出立体曲面图

shadingflat

运行结果如图2.9、2.10所示。

图2.9

图2.10

说明:

函数clabel给等值线图标上高度值。

不过这样做时,函数clabel需要函数contou等值线矩阵的输出。

在三维作图常用到命令:

meshgrid——生成二元函数z=f(x,y)中x-y平面上的矩形定义域中数据点矩阵X和Y,或者是三元函数u=f(x,y,z)中立方体定义域中的数据点矩阵X,Y和Z。

[X,Y]=meshgrid(x,y)——输入向量x为x-y平面上矩形定义域的矩形分割线在x轴的值,向量y为x-y平面上矩形定义域的矩形分割线在y轴的值。

输出向量X为x-y平面上矩形定义域的矩形分割点的横坐标值矩阵,输出向量Y为x-y平面上矩形定义域的矩形分割点的纵坐标值矩阵。

[X,Y,Z]=meshgrid(x,y,z)——输入向量x为立方体定义域的立方体分割平面在x轴上的值,输入向量y为立方体定义域的立方体分割平面在y轴上的值,输入向量z为立方体定义域的立方体分割平面在z轴上的值。

输出向量X为立方体定义域中分割点的x轴坐标值,Y为立方体定义域中分割点的y轴坐标值,Z为立方体定义域中分割点的z轴坐标值。

4、建模问题的作图

【例题2.9】(1994年全国大学生数学建模竞赛A题)要在一山区修建公路,首先测得一些地点的高程,数据见表2.2(平面区域0≤x≤5600,0≤y≤4800;表中数据为坐标点的高程,单位:

米;y轴正向为北)。

表2.2

4800

1350

1370

1390

1400

1410

960

940

880

800

690

570

430

290

210

150

4400

1370

1390

1410

1430

1440

1140

1110

1050

950

820

690

540

380

300

210

4000

1380

1410

1430

1450

1470

1320

1280

1200

1080

940

780

620

460

370

350

3600

1420

1430

1450

1480

1500

1550

1510

1430

1300

1200

980

850

750

550

500

3200

1430

1450

1460

1500

1550

1600

1550

1600

1600

1600

1550

1500

1500

1550

1500

2800

8950

1190

1370

1500

1200

1100

1550

1600

1550

1380

1070

900

1050

1150

1200

2400

910

1090

1270

1500

1200

1100

1350

1450

1200

1150

1010

880

1000

1050

1100

2000

880

1060

1230

1390

1500

1500

1400

900

1100

1060

950

870

900

930

950

1600

830

980

1180

1320

1450

1420

1400

1300

700

900

850

840

380

780

750

1200

740

880

1080

1130

1250

1280

1230

1040

900

500

700

780

750

650

550

800

650

760

880

970

1020

1050

1020

830

800

700

300

500

550

480

350

400

510

620

730

800

850

870

850

780

720

650

500

200

300

350

320

0

370

470

550

600

670

690

670

620

580

450

400

300

100

150

250

y/x

0

400

800

1200

1600

2000

2400

2800

3200

3600

4000

4400

4800

5200

5600

试利用表中的数据,绘制这一山区的地貌网格图、平滑地貌图、等高线图。

题目分析:

山区地貌可视为为空间曲面,根据表中的测量数据,可建立空间直角坐标系,坐标系的原点位于xy面的起始测量位置。

利用meshgrid命令建立起x-y平面上的矩形定义域{(x,y)|0≤x≤5600,0≤y≤4800}中数据点矩阵X和Y,若将表中高程数据按原来的行列顺序作为地貌的纵坐标,此时给出Y轴的坐标的顺序是4800,4400,4000,……,0。

又由于测量的数据间隔较大,直接作出较平滑的地貌图是不精确的,若假设地貌的变化是连续的,则可用插值的方法画出较平滑的地貌图。

解:

程序为:

x=0:

400:

5600;%给出X轴的坐标

y=4800:

-400:

0;%给出Y轴的坐标

[X,Y]=meshgrid(x,y);

Z=[1350137013901400141096094088080069057043029021050;13701390141014301440114011101050950820690540380300210;138014101430145014701320128012001080940780620460370350;1420143014501480150015501510143013001200980850750550500;143014501460150015501600155016001600160015501500150015501500;9501190137015001200110015501600155013801070900105011501200;9101090127015001200110013501450120011501010880100010501100;88010601230139015001500140090011001060950870900930950;830980118013201450142014001300700900850840380780750;740880108011301250128012301040900500700780750650550;650760880970102010501020830800700300500550480350;510620730800850870850780720650500200300350320;370470550600670690670620580450400300100150250];%给出(x,y)点的高程

surf(X,Y,Z);%网格阴影图见图2.11

figure

(2);%新开一窗口

contour(X,Y,Z,20);%画平面等高线见图2.12

figure(3);%再新开一窗口

contour3(X,Y,Z,20);%画三维等高线见图2.13

xi=linspace(0,5600,50);yi=linspace(0,4800,50);%给出新的插值坐标

[XI,YI]=meshgrid(xi,yi);

ZI=interp2(X,Y,Z,XI,YI,'*cubic');%对数据(xi,yi,zi)使用样条在网格{X,Y}上插值.

surf(XI,YI,ZI);%用网格画出插值的结果见图2.14

shadinginterp%采用插补明暗处理见图2.15

图2.11

图2.12

图2.13

图2.14

图2.15

说明:

(1)图形显示在y=3200米处有一东西走向的山峰;从坐标(2400,2400)到(4800,0)有一西北——东南走向的山谷;在(2000,4800)附近有一山口峰。

(2)在MATLAB中,除命令interp2(X,Y,Z,XI,YI,'*cubic')对数据(X,Y,Z)使用样条在网格{XI,YI}上插值外,函数griddata也用来产生经插值后的均匀间隔数据以作图,其格式为ZI=griddata(X,Y,Z,XI,YI),功能是三个原始矩阵X,Y,Z和需要插值的方格矩阵XI,YI,创建一个新的因变量矩阵ZI。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 职业教育 > 中职中专

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2