数学实验报告
通过本次试验,我对Matlab有了更多的了解,知道它应用范围之广、作用之大。此高级语言可用于技术计算,二维和三维图形图形函数可用于可视化数据,各种工具可用于构建自定义的图形用户界面,自带仿真系统。
友好的工作平台和编程环境,简单易用的程序语言,强大的科学计算机处理能力,出色的图形处理功能。
体积可视化运用计算机图形学或一般图形学的原理和方法,将计算等产生的大规模数据转换为图形、图象,以直观的形式表示出来。它涉及计算机图形学、图象处理等多个研究领域。
(4)streamtube(vertices,divergence) 数组X、Y、Z由【X,Y,Z】=meshgrid(1:N,1:M,1:P)定义,其中【M,N,P】=size(divergence)。
(5)streamtube(vertices,width) 使用矢量的单位数组width确定流带的宽度,vertices与width的每一对应元素的大小必须相同,width也可以是一个标量,定义所有流管的宽度。
(1)streamribbon(X,Y,Z,U,V,W,startx,starty,startz) 绘制三维矢量数据U、V、W的流带图,数组X,Y,Z定义了U,V,W的坐标,startx,starty,startz定义了流带图的起点位置。
(2)streamribbon(U,V,W,startx,starty,startz) 绘制三维矢量数据U、V、W的流带图,假定数组X,Y,Z由【X,Y,Z】=meshgrid(1:N,1:M,1:P)定义,其中【M,N,P】=size(U).
实验过程记录(含基本步骤、主要程序清单及异常情况记录等):
实验内容:
1.利用MATLAB中所提供的数据集wind绘制流线图。
调入数据wind,创建变量并绘制流线图:
程序如下:
load wind
[sx,sy,sz]=meshgrid(80,20:10:50,0:5:15);
h=streamline(x,y,z,u,v,w,sx,sy,sz);
利用计算机生成的数据绘图,从而以一种很直观的方式表现了流过北美洲的气流变化情况,非常有利于信息提取和反馈决策。
实验原理与数学模型:
一,相关函数(命令)及简介
1.streamline函数使用二维或三维数据绘制流线图,其调用格式为:
(1)h=streamline(X,Y,Z,U,V,W,startx,starty,startz)绘制三维矢量数据U,V,W的流线图并返回图形对象的句柄,数组X,Y,Z定义了U,V,W的坐标,startx,starty,startz定义了流线图的起点位置。
(4)streamparticles(line-handle,...) 使用由line-handle定义的图形对象绘制流点图。
(5)h=streamparticles(...) 返回图形对象句柄。
3.streamribbon函数使用三维矢量数据绘制流带图,用飘动的条带来表示物体的流动(本实验中是气流的流动),其调用形式为:
(1)圆锥体图形表示气流速率的大小和方向。
(2)数据边界处的分片面板表示三维区域内部圆锥体的可视化承接。
(3)一定方向的光照提供了圆锥体方位的视图序列。
(4)通过选择观点、投影类型和放大来最好地重现数据的内容信息。
实验所用软件与版本:操作平台:Window7操作系统
硬件设备:台式机
软件:MATLAB7.0
(6)streamtube(vertices) 自动选择宽度。
(7)streamtube(...,[scalen]) 按scale参数确定流管的宽度,n为沿圆管周围分布的点数,缺省时scale=1,n=20。
(8)h=streamtube(...) 返回图形对象句柄。
5,流锥图
用coneplot函数在三维向量场中用圆锥体绘制速率向量图,在这里绘制向量空间数据的速率向量圆锥体图,该数据代表方形空间区域中气流的流动。最后生成的图形采用了一些方法使得数据显示的效果更好,包括:
MATLAB提供了比较完备的体积可视化函数,利用这些函数,可以绘制流线图、流管图、流带图和流点图等表现流动特征的图形。
本实验采用的数据来自Matlab自带的wind向量数据集合,它代表流过北美洲的气流。具体数据可以利用loadwind从Matlab中提取出来。
实验目的:
本实验选取了Matlab自带的wind向量数据集,利用Matlab提供的对标量数据和矢量数据进行可视化的函数,利用这些函数绘制流线图、流点图、流带图、流管图等多种图形。
4.streamtube函数使用三维数据绘制流管图,用不同粗细和颜色的空间管道表现物体在空间的流动特征,其调用格式为:
(1)streamtube(X,Y,Z,U,V,W,startx,starty,startz) 绘制三维矢量数据U、V、W的流管图,数组X、Y、Z定义了U、V、W的坐标,startx,starty,startz定义了流管图的起点位置。
(2)streamparticles(vertices,n) 用n确定需要绘制多少流点。
(3)streamparticles(...,’Propertyname’,Propertyvalue,...) 使用指定的属性和指定值控制流点。流点包括:Animate-流点动画,可以设置动画重复的次数;FrameRate-动画频率,即每秒的动画幅数;ParticleAlignment-流点是否与流线对齐。
如果无指定值,MATLAB将使用缺省值:
stepsize=0.1,max-number-vertices=1000
2.streamparticles函数使用二维或三维数据绘制流点图,用流动的点来表示物体的流动。其调用格式为:
(1)streamparticles(vertices) 绘制矢量的流点图,流点由标记代表,可以显示流线的位置和速率,vertices为一个二维或三维矢量的单位数组。
(2)streamtube(U,V,W,startx,starty,startz) 绘制三维矢量数据U、V、W的流管图,假定数组X、Y、Z由【X,Y,Z】=meshgrid(1:N,1:M,1:P)定义,其中【M,N,P】=size(U)。
(3)streamtube(vertices,X,Y,Z,divergence) 预先计算的流线顶点和差异。vertices为流线顶点的单位数组,X、Y、Z、cav和speed为三维数组。
数学实验报告
实验序号:日期:2013年5月15日
班级
数学系10级B班
姓名
学号
实验名称
体积可视化---基于wind的向量数据集合(它代表流过北美洲的气流)分析气流变化
问题背景描述:
随着计算机科学技术的发展,科学计算问题已经在一定程度上得到了解决。采用一些先进的算法,甚至可以用具有高度真实感的实体模型来模拟科学计算的过程和结果。
s1=streamline(verts);
iverts=interpstreamspeed(x,y,z,u,v,w,verts,.025);
axis tight;view(30,30);daspect([1 1 .125])
camproj perspective;camva(8)
set(gca,’DrawMode’,’fast’)
streamribbon(verts,x,y,z,cav,spd);
axis tight
shading interp
view(3)
camlight;lighting gouraud
5.利用MATLAB中所提供的数据集wind绘制流管图。
调入数据wind,绘制流管图:
程序如下:
clear
load wind
(3)streamribbon(vertices,X,Y,Z,cav,speed) 预先计算的流线顶点、扭曲角速度和流速。vertices为流线顶点的单位数组,X、Y、Z、cav和speed为三维数组。
(4)streamribbon(vertices,cav,speed) 数组X、Y、Z由【X,Y,Z】=meshgrid(1:N,1:M,1:P)定义,其中【M,N,P】=size(cav)。
程序如下:
clear
load wind
[sx sy sz]=meshgrid(80,20:10:50,0:5:15);
daspect([1 1 1])
verts=stream3(x,y,z,u,v,w,sx,sy,sz);
cav=curl(x,y,z,u,v,w);
spd=sqrt(u.^2+v.^2+w.^2).*.1;
(5)streamribbon(vertices,twistangle) 使用矢量的单位数组twistangle确定流带的扭曲,vertices与twistangle的每一对应元素的大小必须相同。
(6)streamribbon(...,width) 设置流带的宽度。
(7)h=streamribbon(...) 返回图形对象句柄。
daspect([1 1 1])
streamribbon(x,y,z,u,v,w,sx,sy,sz);
axis tight
shading interp;
view(3);
camlight;lighting gouraud
4.利用MATLAB中所提供的数据集wind绘制扭曲流带图。
调入数据wind,绘制扭曲流带图:
(2)h=streamline(U,V,W,startx,starty,startz) 绘制三维矢量数据U,V,W的流线图并返回图形对象的句柄,假定数组X,Y,Z由【X,Y,Z】=meshgrid(1:N,1:M,1:P)定义,其中【M,N,P】=size(U)。
(3)h=streamline(X,Y,Z) X,Y,Z为单位数组,该数组由顶点数组计算得到的。