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

上传人:b****6 文档编号:6260950 上传时间:2023-01-04 格式:DOCX 页数:12 大小:303.92KB
下载 相关 举报
实验22三维数据的绘图.docx_第1页
第1页 / 共12页
实验22三维数据的绘图.docx_第2页
第2页 / 共12页
实验22三维数据的绘图.docx_第3页
第3页 / 共12页
实验22三维数据的绘图.docx_第4页
第4页 / 共12页
实验22三维数据的绘图.docx_第5页
第5页 / 共12页
点击查看更多>>
下载资源
资源描述

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

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

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

实验22三维数据的绘图

实验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-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1