MATLAB插值函数在地形可视化的表达中的应用

期刊: 前沿科学 DOI: PDF下载

燕林涛 袁佐霄

(重庆电讯职业学院 智慧城市建设学院 重庆江津 402247)

摘要

在matlab中运用二维插值函数的方法,对由测量而得到的控制点、碎步点的坐标进行三维地形数据的可视化处理,随着插值区间的不断缩小,可视化效果会不断提高,可与CAD或者电子地图系统达到同样的效果。本文是从matlab强大的计算功能和数据可视化功能着手,重点是以空间数据分析中的插值函数法的应用以表达测量坐标数据的三维效果。


关键词

matlab ; 空间分析 ; 插值 ; 可视化

正文


   可视化技术是指利用计算机图形学和图像处理技术,抽象、复杂的数据信息转换成图形及图像在屏幕上显现出来,以便直观分析,进行交互处理的理论,方法和技术。地形图是运用测量手段采集地貌、地物的特征点,按照正射投影的方法,依照一定的比例尺缩绘到平面图纸上。在地形图上我们只有通过高程点或等高线的高程值来判断地面的高低起伏,其方法繁琐、不够直观。随着计算机技术的发展,利用matlab差值函数在实测高程点的基础之上插入更多的高程点,使地表的高低起伏得以逼真、形象的显现。

1.插值法

   生产实践中常常出现这样的问题:给出一批离散样点,要求作出一条通过这些点的光滑曲线,以便满足设计要求或进行加工。反映在数学上,即已知函数在一些点上的值,寻求它的分析表达式。因为由函数的表格形式不能直接得出表中未列点处的函数值,也不便于研究函数的性质。此外,有些函数虽有表达式,但因式子复杂,不容易算其值和进行理论分析,也需要构造一个简单函数来近似它。

   解决这种问题的方法有两类:一类是给出函数的一些样点值,选定一个便于计算的函数形式,如多项式、分式线性函数及三角多项式等,要求它通过已知样点,由此确定函数作为的近似。这就是插值法。另一类方法在选定近似函数的形式后,不要求近似函数过已知样点,只要求在某种意义下他在这些点上的总偏差最小。这类方法称为曲线(数据)拟合法。

1.1 Lagrange插值多项式

先讨论只有两个节点,的插值多项式。设插值多项式为,且满足插值条件

解此方程组得

                                  1-1

所以,两个节点的一次插值多项式为

               1-2

这是用过两点的直线近似曲线,故这种插值又称为线性插值。

如果将式(1-2)改写成以下形式

                  (1-3)

式(1-3)中,被表成两个线性函数的线性组合。记

显然,它们满足

在对应的插值点处的取值为1,在其他点处取值为0,不难想象,以对应点处的函数值为系数对它们作线性组合所得的函数,不仅仍是线性的,且必定满足插值条件。由此得到启发,当节点增多到个时,可以先构造次多项式,它们满足

                      1-4

然后以对应点处的函数值为系数作线性组合,即得所要求的插值多项式。下面推导的表达式。

由式(1-4),多项式个根,且,故它必定是以下形式

 1-5

这些函数称为Lagrange插值基函数。利用它们立即得出插值问题的解

              1-6

事实上,因为每个插值基函数都是次多项式,故是至多次多项式。由式(1-6)又得

满足插值条件式。

式(1-5)称为Lagrange插值多项式。为了以后便于区别,常用代替,以突出表示这是由Lagrange插值所得到的插值多项式,即

                        1-7

2、matlab理论

   Matlab是由美国mathworks公司发布的主要面对科学计算,可视化以及交互式程序设计的高科技计算环境,它将数值分析,矩阵计算,科学数据可视化以及非线性动态的建模和仿真等诸多强大功能集成在一个易于使用的视窗环境中,为科学研究,工程建设以及必须进行有效数值计算的总众多科学领域提供了一种全面解决问题的方案,并在很大程度上摆脱了传统的交互式程序设计语言的编辑模式,代表了当今国际科学计算软件的先进水平。

Matlab的基本数据单位是矩阵,它的指令表达式与数学,工程中的常用形式十分相似,故用matlab解决问题要比C , C++,VB等程序语言简捷的多。并且matlab吸收了maple的软件的优点,使其成为一个强大的数学软件。

Matlab用于空间分析的优点:

 1)、强大空间模型成图能力。Matlab能够将计算的结果以二维、三维乃至四维的图形表现出来,并且可以通过対图形线性,立面,色彩,渲染,光线,视角等特性的处理,把计算结果表现的淋漓尽致。

2)、强大的图像处理能力。图像处理工具包是由一系列支持图像处理的函数组成的,所支持的图像处理操作有:几何操作,区域操作和快操作,线性滤波和滤波器设计,变化,图像分析和增强,而至图像操作等。matlab不但提供非常方便的绘图功能和强大的图形图像处理能力,而且提供了增强的交互处理能力。颜色映射、线形、标记、颜色、图例、坐标轴、多窗口制图根据用户要求都可以定制;三维图形可以缩放、旋转和改变视角 。

3)、丰富的函数库。工具箱toolbox"matlab扩展自身功能的开放式的开发模式。mapimagematlab提供的2个与GIS密切相关的工具箱。

3、基于matlab空间插值分析

    本次实验基于matlab强大模型成图功能,运用插值函数将测量数据可视化,将杂乱的数据通过三维图形表示,从中观察出内在关系。操作的过程中“nearest”“spline”“cubic”“liner”等插值函数该过程更加简便简洁。

3.1、空间插值的实例分析

 在某地区域一条公路,横向纵向区域分别每隔400 m 测量一次高程,得到已知高程点的方格网,现用Matlab做出地貌图和等高线,进行地形图可视化分析.

Y

X

1200

1600

2000

2400

2800

3200

3600

4000

1200

1130

1250

1280

1230

1040

900

500

700

1600

1320

1490

1420

1400

1300

700

900

850

2000

1390

1500

1500

1400

900

1100

1060

950

2400

1500

1200

1100

1350

1450

1500

1150

1010

2800

1500

1200

1100

1550

1600

1550

1380

1070

3200

1500

1550

1600

1550

1600

1600

1600

1550

3600

1480

1500

1550

1540

1450

1600

1500

980

1)、输入实验数据,绘制粗糙的分布曲面图以及等高线

 x=1200:400:4000;y=1200:400:3600;

>>z= [1 130 1250 1280 1230 1040 900 500 700;1320 1490 1420 1400 1300 700 900 850;1390 1500 1500 1400 900 1100 1060 950;1500 1200 1100 1350 1450 1200 1150 1010;1500 1200 l 100 1550 1600 1550 1380 1070;1500 1550 1600 1550 1600 1500 1600 1550;1480 1500 l550 1540 1450 1300 1200 980l;

>> mesh(x,y,z)  曲面图如图1 所示

>> contour(x,y,z)   等高线图见图2所示

 

 

1.粗燥的分布曲面图

2 粗糙等高线分布图

2)、以平滑数据,在x   y上以20个单位进行差值

 > xi=1200:20:4000;

>> yi=1200:20:3600;

>> zi=interp2(x,y,z,xi',yi,'cubic');

>> mesh(xi,yi,zi)              (如下图3所示)

>> contour(xi,yi,zi)            (如下图4所示)

 

 

3   双三次插值曲面图

4 插值后等高线的分布

(3)、将曲面图和等高线图进行叠加对比

>> meshc(x,y,z)

>> meshc(xi,yi,zi)    

 

 

5   等高线曲面图

6 等高线插值曲面图

(4)、对原始的曲面,分别运用4种插值方法进行差值。

 [xi,yi]=meshgrid(1200:20:4000,1200:20:3600);

最近点插值(见图7)

zi1=interp2(x,y,z,xi,yi,'nearest');

mesh(xi,yi,zi1)   

线性插值(见图8)        

 zi2=interp2(x,y,z,xi,yi,'linear');

mesh(xi,yi,zi2)    

样条曲线插值(见图9)       

 zi3=interp2(x,y,z,xi,yi,spline');

mesh(xi,yi,zi3)            立方条插值效果图 (见图10)

 zi4=interp2(x,y,z,xi,yi,'cubic');

mesh(xi,yi,zi4)

 

 

7  最近插值点效果图

8  线性插值效果图

 

 

9  样条曲线插值效果图

10 立体线条插值效果图

5、结束语

   本文以某地区地貌的测绘数据(三维坐标)为基本资料,以插值函数为理论依据,在matlab环境中,对地表信息进行了三维可视化的展现。还对该过程的实现的主要步骤,操作代码,以及图形处理的方法进行了详细的说明,体现了matlab在图形可视化处理方面功能之强大和在工程领域的应用之广泛。

 

参考文献

1】  张林泉 、三维地形可视化matlab实现 、电脑应用与开发报,第十卷第二期

2】  胡圣武、 基于matlab的空间分析  地理空间信息   第二十四卷第二期

3】  孙祥     《matlab基础教程》

4】  薛定宇    《高等数学应用问题与matlab求解》

5】  叶其孝     《大学生数学建模教材辅导书》

 


...


阅读全文