径向基函数在动网格中的应用及可并行性研究

径向基函数在动网格中的应用及可并行性研究
径向基函数在动网格中的应用及可并行性研究

4

·技术?/?

TECHNOLOGY ·科研信息化技术与应用2012, 3(5): 4–12

径向基函数在动网格中的应用及可并行性研究

马文鹏,陆忠华,胡晓东

中国科学院计算机网络信息中心 超级计算中心,北京 100190摘 要:

关键词:

Applications of Radial Basis Functions in Dynamic Mesh and Its Parallelizability

Ma Wenpeng, Lu Zhonghua, Hu Xiaodong

Supercomputing Center, Computer Network Information Center , Chinese Academy of Sciences , Beijing 100190, China Abstract:

径向基函数广泛应用于网格变形、气动外形优化设计、网格优化等领域。近年来,基于径向基函数的动网格技术得到了深入的研究和广泛的应用。本文结合计算流体力学和高性能计算的应用背景,从径向基函数对网格的变形质量和变形效率进行了总结和进一步研究:在网格变形方面,重点对比了不同基函数对同一网格运动变形能力和同一基函数对不同网格运动的适应能力;在网格变形效率方面,分析了算法在计算和存储的瓶颈所在,考虑了?

OpenMP 和?GPU 这两种共享内存的加速方式,得到较好加速比。最后,分析了当网格规模增大时,动网格在分布式计算和存储模型?(MPI) 下的处理方法。

径向基函数;径向函数;动网格;网格变形;并行

Radial basis functions are widely used for mesh deformation, aerodynamic shape optimization, grid optimization, etc. Recently, dynamic mesh techniques based on radial basis functions are widely used and much more attention is paid to them. This paper summaries the quality and efficiency of mesh deformation with the applications of radial basis functions on both CFD (Computational Fluid Dynamics) and HPC (High Performance Computing). In addition, a further research is conducted on the following two aspects: the abilities to satisfy the same mesh motion among different radial basis functions and the abilities to satisfy different mesh motion using one radial basis function; computation and storage bottleneck are analyzed and then parallel solutions based on shared memory models including OpenMP and GPU are considered

基金项目:国家高技术研究发展计划 (863 计划) (2012AA01A304);国家自然科学基金 (91130019)

马文鹏?等:?径向基函数在动网格中的应用及可并行性研究Keywords:

1 引言

动网格技术在航空航天领域里有着非常广泛的应用,如多体分离问题、飞机气动弹性问题等。所谓动网格就是在原始计算区域的网格生成后,根据实际问题的需要以边界的运动规律或者多体相对运动规律为条件更新计算区域内的网格的过程。例如,飞机上的外挂物分离问题,归结为多体相对运动问题,外挂物的离开对飞机周围的流场会产生影响,为了较好的模拟这一过程的流场而又避免每一个时间步网格的重新生成及全流场的插值,通常采用网格变形技术,即动网格技术,根据相对运动状态采用一定算法使网格发生形变以适应物体的运动,不必进行网格的重构,在网格的拉伸、扭转不足以满足计算需求时,采取局部重构以缩短处理网格的时间,提高计算效率及精度。

现有的动网格技术主要分为两大类:第一类技术考虑网格结点与结点之间的邻接关系,即每一点的偏移量是和其周围结点的运动有关,比较有代表性的方法是弹簧近似法[1,2]及在其基础上发展而来的扭转弹簧法[3,4]、半扭转弹簧法[5]。这类方法把整个求解区域的网格视为一个弹簧系统,通过弹簧系数来约束网格的运动,然后求解一个线性方程组来再次达到整个弹簧系统的平衡。弹簧近似法稳定性较好,最早应用于非结构网格变形,如果把结构网格、混合网格也采用非结构的数据结构,那么弹簧近似法很容易移植到结构网格、混合网格的变形中,因此弹簧近似法是一个较通用的方法,但在每一个时间步都需要求解一个弹簧平衡方程,求解规模大、存储量大、计算效率也较低。相反,第二类动网格技术无需考虑网格的邻接关系,每个点的运动位移通过边界点的位移插值得到,与其它非边界点无关。对于结构网格,较早发展的方法是无限插值法[6],但其只适用于小变形的结构网格。Liu[7]提出了一种基于背景网格插值的方法,该方法实现简单,不需要迭代计算求解大规模方程组,适用于不同的网格类型,可以直接推广到三维网格变形中,是目前变形效率最高的动网格方法之一。但是背景网格插值法仅对凸域的变形有效,对于非凸边界变形(如可变飞行器)、曲面变形等则不能将边界变形传递到内部网格中,适用性大大降低。近年来,数学界对径向基函数 (Radial Basis Function, RBF) 插值进行大量研究,Frank[8]指出,在各种散乱数据插值方法中,径向基函数的插值结果最让人们满意。随后,RBF 应用到流固耦合计算中的界面参数传递中[9]及动网格生成中[10]。A. de Boer[10]等较详细的讨论了使用 RBF 来进网格的变形或移动。C. B. Allen[11]提出了一种适用于任意网格(结构、非结构、混合) 且适用于多边界运动的插值方法,该方法具有通用性,且考虑到了结构网格变形中边界正交性的保持,以提高网格变形中 CFD 求解器的求解精度。

随着具体问题求解规模的不断扩大,并行计算技术得到了广泛的应用。近几十年来,基于 CFD 的并行计算得到了较好的发展,也取得了可观的研究成果和工程应用。目前,大规模并行 CFD 求解器较多也比较成熟,但是动网格生成的并行化却相对滞后[12],考虑到动网格在非定常求解上与求解器联系紧密,高效率高变形质量的动网格生成对整个非定常模拟的时间起着至关重要的影响。另外,每一种动网算法有一定的适用范围,这给设计出一套通用的基于动网格的并行非定常计算模型提出了挑战。本文首先总结介绍基于径向基函数的动网格算法,对比不同的径向基函数对同一网格运动的网格变形能力以及同一径向基函数对不同网格运动的适应能力,随后对此算法在网格规模较大时的计算和存储瓶颈进行分析,结合已有数据精简算法和高性能计算技术,使基于径向基函数的动网格算法在较大网格规模下的快速计算成为可能。最后结合 CFD 求解器及区域分解技术,讨论了分布

and a good speed up is obtained. Finally the solution to large-scale dynamic mesh on the conditions of distributed computing and storage model (MPI) is discussed.

Radial basis function; RBF (Radial Basis Function); Dynamic mesh; Mesh deformation; Parallel

5

6

科研信息化技术与应用,2012, 3 (5)

式并行计算模型下的动网格处理方法。2 基于径向基函数动网格算法

2.1 径向基函数概念及动网格算法

形如φ(?) = φ?(‖?‖ )(其中‖?‖表示欧式距离)的函数称为径向基函数(RBF)。常用的 RBF 基函数大致可以分为三类:全局 (global) 函数、局部 (local) 函数和紧支 (compact) 函数[10],如表 1 所示。全局函数的函数值随离中心距离的增大而增大,且处处不为零;局部函数的函数值随离中心距离的增大而减小,且处处不为零;紧支函数的函数值也随着离中心距离的增加而减小,且该距离达到某一特定值 (称为紧支半径 support radius) 后函数值恒为零。

其中,紧支型 RBF 基函数有比较明显的特点:

, r 为紧支半径

有了 RBF 基函数,可以把它应用到网格的变形中,设在 d 维空间中的一组位置不同的点 X ={x 1, x 2, ...x n } 称之为中心点,这些中心点上对应的标量值为 d 1, d 2, ...d n ,对于一个给定的 RBF 基函数 φ (x ),确定一系列插值系数αj ,使得连续函数 s (x ) = ∑ n

j =1 αj φ?(‖x -?xj ‖ ) 满足

= =

对于动网格问题,中心点就是运动边界上的点,而对应的标量值为由人为给定的边界运动方程直接求解出的边界运动位移,或者由当前时间步的流场压力分布及刚体动力学方程求解出的边界运动位移。对三维动网格的情

况,每个中心点上对应的标量有 3 个,分别是三个坐标方向上的网格运动位移。因此需要分别计算三个方向上

的插值系数 αj ,βj ,γj ,写成矩阵的形式为:

(1) 其中 α,β,γ 分别是 x ,y ,z 三个方向上的插值系数向量。M 是由中心点构成的矩阵

(2)

求解(1)三个线性方程组可以得到插值系数,再由插值系数可确定整个流场内点的网格运动位移

(3)

2.2 径向基函数法的网格变形质量

文献[12]指出,对于不同的网格变形,存在一个基函数选取的问题,基函数的选取直接关系到变形后网格的质量。有关网格质量,用文献[13]中相对网格面积及相对网格形状的指标 (记作f ss ) 进行评估,其中 f ss 在 0~1 之间,越接近 1,网格质量越好,反之,网格质量越差,并且当网格出现交叉(负体积)时,设置 f ss 为 0。

以 NACA0012 翼型为例,令其绕四分之一弦长

全局型和局部型 RBF 基函数

紧支型 RBF 基函数

名称φ?(x) [ = 10-5~10-3]

名称f?(ξ) = f?(x/y)

TPS X

2log (X )

CP C 0(1-ξ)2MQB CP C 2(1-ξ)4 (4ξ-1)IMQB CP C 4(1-ξ)6 (35/3ξ+6ξ+1)QB 1+X 2CP C 6(1-ξ)8 (32ξ3+25ξ2+8ξ+1)

IQB 1/(1+X 2)CTPS C 0(1-ξ)5

Gauss e -x 2CTPS C 11+80/3ξ2-40ξ3+15ξ4-8/3ξ5+20ξ2log (ξ)VS x CTPS C 2a 1-30ξ2-10ξ3+45ξ4-6ξ5-60ξ3log (ξ)R n

x n

CTPS C 2b

1-20ξ2+80ξ3-45ξ4-16ξ5+60ξ4log (ξ)

表?1 全局型、局部型和紧支型?

RBF 基函数

7

马文鹏?等:?径向基函数在动网格中的应用及可并行性研究

图?1 NACA0012 翼型非结构化网格

图?2 不同?

RBF 基函数更新网格质量对比图?3 A=0.03 时网格变形效果

图?4 A 分别为?

0.06, 0.08, 0.1

时机翼相同部位变形效果处做旋转运动,二维非结构网格的分布如图 1 所示,选取表 1 中的 8 个紧支型的 RBF 基函数分别做网格更新计算,更新后最差网格质量随转动角度变化规律如图 2 所示。

从图 2 看出,CP C 2 函数适应大变形的能力最强,而其它函数在旋转角度大于 45 度时,所得到的网格质量会出现较大幅度的下降。CTPS C 0 随旋转角度的变化规律与 CP C 0 和 CP C 6 类似。对于 CTPS C 1 及 CTPS C 2 的两个函数,在转角小于 5 度时可以保持很高的网格质量,但是当转角超过 10 度时就会出现了负体积,适应能力较差,图 2 并未给出计算结果。

为讨论同一径向基函数对不同网格运动的适应能力,这里选取适应变形能力较稳定的 CP C 2 函数进行实验。实验假设网格边界做 ?y=A sin (4πx ) 运动。选取不同的A 值,来测试CP C 2函数对运动幅度大小的适能力。图 3 是 A=0.03 时全二维 NACA0012 机翼的显示结果。图 4 是 A 分别取 0.06,0.08,0.1 时靠近机翼尾部同一区域在放大相同规模后网格变形情况。在A=0.1时,机翼的形状(边界)已经发生了较剧烈的变化,此时网格未出现交叉现象,质量依然较好。

由以上实验可以看出,基于径向基函数的网格变形质量与所选取的径向基函数关系紧密,同时径向基

函数对不同的网格运动也有较好的适应能力,可以较好处理比较复杂的边界运动。

2.3 径向基函数法的计算及存储瓶颈

由 (1) 式可知,基于径向基函数的动网格算法需要求解 2 个 (二维) 或 3 个 (三维) 的线性方程组。线性方程组的求解,特别是随着并行计算的发展,大规

模线性方程组的求解一直是科学研究和工程应用的热

8

科研信息化技术与应用,2012, 3 (5)

点,95 288 个三角形单元的非结构网格,其中边界点有 1 592 个。测试环境配置如下:2 颗六核 Intel (R) x e o n (R ) 处理器 X 5650,主频为 2.67 G H z ,C/C++ 编译器为 GNU C/C++,版本为 4.4.4。表 2 是 OpenMP 并行 CG 算法而程序其他部分串行执行对整个程序的加速效果。图 5 为加速比曲线。

在上面针对二维网格的测试中,关于插值系数的两个线性方程组是分开求解的,而且整个程序只并行了 CG 算法,程序其他部分并未并行。分开求解两个线性方程组虽然可以节省临时内存的开销,但是两个线性方程组流程却一样,在相同网格规模下,显然会增加 OpenMP 线程开销,导致线程的创建、初始化、销毁比较频繁。考虑到 (1) 式的特点,各线性方程组的系数矩阵是相同的,这样就可以同时求解以增加求解过程中每步循环的计算量,保证

线程的开销对计算密集的部分是值得的。另外,生成 (1) 式中的系数矩阵和更新整个流场内点的位置的计算复杂度分别是 N 2boundary 和 N inner ×N boundary ,当网格规模较大时,这两部分作为串行计算将会限制

点。一般情况下,影响线性方程组求解效率主要有如下因素:(1) 方程组的规模;(2) 方程组的特征;(3) 求解算法的选择。对于基于径向基函数的动网格算法,方程组的规模是由求解区域的边界点的个数决定的;(1) 式 3 个线性方程组的系数矩阵是对称的;在通常情况下,jacob 迭代、Gauss Seidel 迭代、SOR 、SSOR 迭代是求解线性方程的通用方法,有实现简单、节省内存等优点。但是这些迭代法在方程组规模较大时,收敛效率低下,求解时间长,这个时间直接会影响流场每个时间步的推进效率。另外,文献[10]指出,当边界发生较大变形时,需要将较大的变形分解成几个中间步去实现以保证变形后网格的质量,而每个中间步的实现同样需要求解形如 (1) 式的方程组,这就对求解方程组的效率提出了更高要求。

目前常用于对称矩阵的线性方程组的方法有共轭梯度法 (CG )、预条件的共轭梯度法 (PCG ) 等。其方法均是矩阵乘以矩阵、矩阵乘以向量、向量内积、向量加减等操作,算法效率高,收敛快,但是需要显示存储矩阵、向量,内存需求较大,对于物面网格节点数目较多的三维网格变形问题,这样的内存消耗是难以接受的。因此,在网格规模较大时,很难达到动网格计算效率与内存需求之间的平衡。国内外的学者也对此问题展开了比较广泛深入的研究,Rendall [14]采用贪心法根据最大插值误差位置来逐步添加径向基函数的办法来实现径向基函数序列的精简,即在N 个物面网格节点中选取少部分的节点 (假设为 M 个) 作为径向基函数的支撑点,并且根据这 M 个节点上的位移建立一个满足精度要求的低维径向基函数插值来代替原来高维的径向基函数插值。此算法可以根据人为指定的插值误差精度来控制所选取的部分节点的个数,有比较大的自由度,解决了径向基函数法的存储瓶颈,为基于径向基函数的大规模并行动网格生成提供了可能。

2.4 基于径向基函数的动网格算法的并行化

根据上一节的分析,首先采用 OpenMP 多线程的并行方式并行了基于 RBF 基函数的动网格算法,所采用的是 NACA0012 翼型附近的包含 48 400 个图?5 OpenMP 并行?

CG 算法对整个程序加速效果CPU 核数程序运行时间(单位:秒)

加速比141.6281227.385 1.520415.644 2.66189.6543 4.31212

7.947

5.238

表?2 并行的?CG

算法对整个程序的加速效果(注:程序运行时间均用 linux 下的 time 命令测得)

9

马文鹏?等:?径向基函数在动网格中的应用及可并行性研究

加速比的提高。为此,在相同的网格规模下,用并行 CG 算法同时求解两个线性方程组且并行生成系数矩阵和更新流场内点位置进行实验,实验结果如表 3 所示。图 6 为加速比曲线。由表 3 与表 2 的对比可以看出,采用并行 CG 算法同时求解两个线性方程组使得程序的整体性能得到了提高,串行和并行时间有所减少,并行系数矩阵的生成及流场内点的位置计算提高了并行的加速比。用 12 个核在 4.64 秒内即可完成 48 400 个节点的更新。

为了缩短整个流场的计算时间,在求解推进时间不变的情况下,需要尽可能的减少网格更新的时间。但是随着求解问题规模的不断扩大,网格数目也大幅度增加,而且单节点上 CPU 核心个数受硬件发展的限制不能达到更多,这样当问题规模较大时,即使基于 OpenMP 的并行动网格生成也需要占用求解过程中的大部分时间,影响着整个流场的计算效率。本文将基于径向基函数的动网格程序移植到了 GPU 上,并做了优化,充分利用了 GPU 内存共享的计算模型的优势,加速效果明显。实验采用三维 ONERAM6 翼型,包含 108 396 个网格节点,582 752 个四面体单

元,4 997个边界点,图 7 显示了 ONERAM6 翼型二维表面,图 8 显示了 ONERAM6 三维机翼整体图和局部放大图。

在 GPU 程序中,考虑到 GPU 硬件特性及 CUDA 编程特点,对程序做了如下优化:

(1) 减少了不必要的 kernel 的发起。由于需要求解三个线性方程组,且线性方程组的系数矩阵是相同的,可以对三个线性方程组同时求解,这样很多 GPU 上的矩阵、向量的操作就可以写在同一个 kernel 函数中,以减少同一数据在 global memory 和 shared memory 里重复

CPU 核数单独并行CG 算法时

加速比各部分均并行时

加速比135.332秒135.332秒1223.809秒 1.48422.342秒 1.58413.701秒 2.5711.772秒 3.0088.789秒 4.02 6.442秒 5.4812

7.030秒

5.03

4.640秒

7.615

图?6 优化后加速效果图?7 ONERAM6?翼型表面

图?8 ONERAM6 翼型整体图?

(左) 和局部放大图?(右)表?

3 优化前后程序运行时间及加速比的对比

科研信息化技术与应用,2012, 3 (5)

拷贝,增大计算密度,减少内存访问。这样,三个相同功能但数据不同的 kernel 就可以整合到一起,减少频繁发起 kernel 及内存拷贝的开销。

(2) CPU 代码和 CPU 到 GPU 内存拷贝的异步执行。在实验中,将边界点在已知运动规律下的位置更新放在 CPU 端,将线性方程组的求解、区域内点的更新放在 GPU 端,这样当 CPU 端在计算边界点的偏移量时,可以在此时进行 CPU 到 GPU 的内存传输,可以有效隐藏内存传输时间。最后再单独将边界点的偏移量数组拷贝到GPU端。

(3) 使用 -use_fast_math 编译选项。在使用 RBF 基函数时,难免会用到开平方、求对数等数学函数,使用 nvcc 编译程序时,用 -use_fast_math 选项可以使用 CUDA 硬件实现的数学函数计算库,加快浮点运算。

(4) 用 SOA (Structure Of Arrays) 代替 AOS (Array Of Structures)。在 CFD 串行程序设计中,通常将网格上的物理量(如压力、温度、密度、马赫数等) 及几何信息(如坐标、边长、面积、体积等) 封装成一个结构体变量,然后在程序中分配一个结构体的数组(AOS),但是这种封装模式并不适合 SIMD 模式的 GPU 程序,因为不容易做到 global memory 的内存融合及优化。因此,在此程序中,用 SOA 取代 AOS,将网格点的每一条信息均声明一个数组来保存。

使用了以上的优化,将 GPU 对整个程序的加速和 OpenMP 对整个程序的加速做了对比,结果如表 4 所示。由表 4 可以看出 GPU 加速已经可以将程序的运行时间提升到秒的量级,这样可以大大节省 CFD 求解推进一步的时间,同时也可以看出 GPU 在浮点运算中的优势。其中最后一栏分别是 GPU 相对串行、8 个核、12 个核的 CPU 程序的加速比。值得指出的是,在实验中,并未对 ONERAM6 翼型的边界做数据精简工作,如若做数据精简,将 4 997 个边界点精简到 1 000 以内,程序的运行时间将会进一步缩短,完全可以满足 CFD 求解推进的需要。

3 分布式计算及存储环境下动网格的处理

随着高性能计算的发展与应用,基于千核、甚至万核级的大规模 CFD 并行求解器成为大规模应用的重点研究内容,此时分布式计算和存储必不可少。目前使用基于 MPI 通信的分布式计算和存储模型,在此基础上配合使用 OpenMP、GPU 单节点的内存共享模型来编写和设计 CFD 程序和软件。动网格与 CFD 求解器密切相关,当具体动网格应用规模较大时,则需要考虑分布式计算和存储。基于 RBF 基函数的动网格没有考虑到网格之间各节点的邻接关系,网格各节点的移动只是通过边界的位移插值得到,大大减少了处理网格数据结构的时间,使我们更加关注求解器。

对于非结构网格,目前主流的大规模的并行方式是通过区域分解将网格分块,然后各块通过 MPI 通信进行数据交换。目前较成熟的网格分区工具是 METIS 及其并行版本 PARMETIS。在此,通过一个基于 METIS 的实例说明在分布式计算模型下动网格的处理。图 9 显示了 NACA0012 翼型周围网格的 5个分区效果,一种颜色代表一个分区,黑色代表相邻区域的边界(ghost 区域),各区域网格节点数为 1 148,1 145,1 137,1 147,1 149。可以看出,通过 METIS 分区后可以最大限度的保持各区域内节点数的大致相等,有利于实现分布式计算时的计算负载平衡。图 10 为相邻分区之间的 ghost 边界的局部放大显

8个CPU核心12个CPU核心 GPU 程序运行时间(s)3m50.1362m40.733 35.63

加速比(相对串行) 5.6988.15836.80 6.46 4.51表?4 GPU 程序运行时间及与OpenMP运行时间对比?(GPU: Tesla C1060,计算能力1.3)

(注:本表中最后一栏分别是GPU相对串行、8个核、12个核的CPU程序的加速比)

10

11

马文鹏?等:?径向基函数在动网格中的应用及可并行性研究

示图。

在对网格进行分区之后,需要对每个处理器里的网格重新编号 (局部索引),然后一一建立相邻区域 ghost 点的局部索引在不同处理器里的映射关系,每一个处理器都要保存一份 ghost 区域 (图 9 中相邻区域黑线所示) 网格在另外一个处理器的局部索引信息及坐标信息。对于动网格的处理,每个处理器无需重新保存一份网格信息,但需要保存一份区域的所有边界信息并重新建立索引,然后建立此处理器上保存区域的边界与整个边界信息的索引映射关系。在边界发生运动时,首先更新每个处理器中整个边界的网格信息,随后根据索引映射更新各处理器上保存的局部边界信息,最后更新每个处理器内点的网格信息。文献[15]中指出,整个区域的网格边界和内点相比是非常少的,每个处理器保存一份整个边界的网格信息是可能的而且是非常必要的,这样每个处理器同时计算边界运动,而不是一个处理器运算然后通过全局通信传递其它处理器。在网格分区后,各处理器计算通过边界运动来求解插值系数时,完全可以使用 OpenMP 或 GPU 来加速程序,这在 CPU+GPU 集群的异构并行环境下是完全可行的。

4 总结

本文从网格变形质量和网格变形效率两方面对基

于径向基函数的动网格算法进行了总结和进一步的研究,重点分析和讨论了此算法在共享内存下的加速效果及在分布式环境下处理大规模动网格的方式,所做工作有一定的实际工程应用意义。

参考文献

[1] Clarence O. E. Burg. A robust unstructured grid movement

strategy using three-dimensional torsional springs. 34th AIAA Fluid Dynamics Conference, 2004.

[2] Frederic J. Blom. Considerations on the spring analogy.

International Journal for Numerical Methods in Fluids, 2000, 32, 647–668.

[3] C. Farhat, C. Degand, B. Koobus, M. Lesoinne. Torsional

springs for two-dimensional dynamic unstructured fluid meshes. Computer Methods in Applied Mechanics and Engineering, 2008, 163, 231–245.

[4] Christoph Degand, Charbel Farhat. A three-dimensional

torsional spring analogy method for unstructured dynamic meshes. Computers and Structures, 2002, 80, 305–316.[5] Dehong Zeng, C. Ross Ethier. A semi-torsional spring

analogy model for updating unstructured meshes in 3D moving domains. Finite Element in Analysis and

Design, 41(2005), 1118–1139.

[6] Jones, W. T. Samareh-Abolhassani. A grid generation system

for Multi-Disciplinary design optimization. 12th AIAA

图?9 利用?METIS 对非结构网格的分区效果图?10 相邻分区之间的?

ghost

边界

科研信息化技术与应用,2012, 3 (5)

Computational Fluid Dynamic Conference Proceeding, 1995, 474–482.

[7] Xueqiang Liu, Ning Qin, Hao Xia. Fast dynamic grid

deformation based on Delaunay graph mapping. Journal of Computational Physics, 2006, 211, 405–423.

[8] Frank R. Scattered data interpolation: Test of some methods.

Math Computing, 1982, 38 (175), 191–200.

[9] Beckert A, Wendland H. Multivariate interpolation for fluid-

structure-interaction problems suing radial functions.

Aerosp Sci Technol, 2001, 5, 125–134.

[10] A. de Boer, M.S van der Schoot, H. Bijl. Mesh deformation

based on radial basis function interpolation. Computers and Structures, 2007,85, 784–795.

[11] C.B. Allen. Parallel universal approach to mesh motion and

application to rotors in forward flight. International Journal for Numerical Methods in Engineering, 2007, 69, 2126–2149. [12] 周璇,李水乡等. 非结构网格变形方法研究进展. 力学进

展, 2011, 41 (5), 547–561.

[13] Patrick M. Knupp. Algebraic mesh quality metrics for

unstructured initial meshes. Finite Elements in Analysis and Design, 2003, 39, 217–241.

[14] T.C.S. Rendall, C.B. Allen. Efficient mesh motion using

radial basis functions with data reduction algorithms.

Journal of Computational Physics, 2009, 228, 6231–6249.

[15] T.C.S. Rendall, C.B. Allen. Parallel efficient mesh motion

using radial basis functions with application to multi-bladed rotors. International Journal for Numerical Methods in Engineering, 2010, 81, 89–105.

收稿日期:2012 年 7 月 8 日

马文鹏:中国科学院计算机网络信息中心超级计算中心,博士研究生,主要研究方向为高性能并行计算、计算流体力学。E-mail: markwinpe@https://www.360docs.net/doc/e34775619.html,

陆忠华:中国科学院计算机网络信息中心超级计算中心,研究员,博士生导师。主要研究方向为高性能并行计算、生物信息学、计算流体力学。

E-mail: zhlu@https://www.360docs.net/doc/e34775619.html,

胡晓东:中国科学院计算机网络信息中心超级计算中心,助理工程师,主要研究方向为计算流体力学、高性能并行计算。E-mail: huxd@https://www.360docs.net/doc/e34775619.html,

12

用径向基函数求微幅波的势函数

用径向基函数求微幅波的势函数 一、 径向基函数 1.径向基函数介绍 径向基函数是无网格方法的一种,我们知道有限元计算中网格畸变会带来困难,相对与有限元,无网格方法不受网格的影响,取点具有随意性,能更准确地获得获得更加复杂系统的近似解,对于流体,以拉格朗日建立的光滑粒子动力学方法(SPH )现阶段解决复杂的问题得到广泛的应用。 径向基函数是一类以点x 到xi 的距离di=||x-xi||为自变量的函数。它具有形式简单、空间维数无关、各向同性的优点,由于径向基函数有许多表达式,在这里采用吴宗敏(1995)提出的正定紧支径向基函数,其表达式为 ())5307282366(1)(54326 r r r r r r x I +++++-=+φ (1) ()???≤≤-=-+ 其他时当 010116 r r r mI I d d r =,mI d 是定义在节点I x 处的径向基函数的支撑域半径,I I x x d -=是以点x 到节点I x 的距离; 2.对于径向基函数的插值 设一个函数为 ()a x x u T )(φ= (2) []T N a a a a ,,,21 = (3) ()[]T N x x x x )(,,),()(21φφφφ = (4) 式(4)有N 个未知数,令近似函数u(x)在节点I x 处的值等于函数u(x)在该节点处的值I u ,即I I u x u =)(,可得到N 个线性方程组: u Aa = (5) 式中 ????????????=??????????????=)()()()()()() ()()()(....)()(21222121211121N N N N N N N T T T x x x x x x x x x x x x A φφφφφφφφφφφφ (6) []T N u u u u ,,,21 = (7) 这里u 一般是已知的;’ 由式(5)解出系数矩阵(3)式a ,代入式(2)中,得

svm核函数matlab

clear all; clc; N=35; %样本个数 NN1=4; %预测样本数 %********************随机选择初始训练样本及确定预测样本******************************* x=[]; y=[]; index=randperm(N); %随机排序N个序列 index=sort(index); gama=23.411; %正则化参数 deita=0.0698; %核参数值 %thita=; %核参数值 %*********构造感知机核函数************************************* %for i=1:N % x1=x(:,index(i)); % for j=1:N % x2=x(:,index(j)); % K(i,j)=tanh(deita*(x1'*x2)+thita); % end %end %*********构造径向基核函数************************************** for i=1:N x1=x(:,index(i)); for j=1:N x2=x(:,index(j)); x12=x1-x2; K(i,j)=exp(-(x12'*x12)/2/(deita*deita)); End End %*********构造多项式核函数**************************************** %for i=1:N % x1=x(:,index(i)); % for j=1:N % x2=x(:,index(j)); % K(i,j)=(1+x1'*x2)^(deita); % end %end %*********构造核矩阵************************************ for i=1:N-NN1 for j=1:N-NN1 omeiga1(i,j)=K(i,j); end end

Matlab工具箱中的BP与RBF函数

Matlab工具箱中的BP与RBF函数 Matlab神经网络工具箱中的函数非常丰富,给网络设置合适的属性,可以加快网络的学习速度,缩短网络的学习进程。限于篇幅,仅对本章所用到的函数进行介绍,其它的函数及其用法请读者参考联机文档和帮助。 1 BP与RBF网络创建函数 在Matlab工具箱中有如表1所示的创建网络的函数,作为示例,这里只介绍函数newff、newcf、newrb和newrbe。 表 1 神经网络创建函数 (1) newff函数 功能:创建一个前馈BP神经网络。 调用格式:net = newff(PR,[S1 S2...S Nl],{TF1 TF2...TF Nl},BTF,BLF,PF) 参数说明: ?PR - R个输入的最小、最大值构成的R×2矩阵; ?S i–S NI层网络第i层的神经元个数; ?TF i - 第i层的传递函数,可以是任意可导函数,默认为'tansig',可

设置为logsig,purelin等; ?BTF -反向传播网络训练函数,默认为'trainlm',可设置为trainbfg,trainrp,traingd等; ?BLF -反向传播权值、阈值学习函数,默认为'learngdm'; ?PF -功能函数,默认为'mse'; (2) newcf函数 功能:创建一个N层的层叠(cascade)BP网络 调用格式:net = newcf(Pr,[S1 S2...SNl],{TF1 TF2...TFNl},BTF,BLF,PF) 参数同函数newff。 (3) newrb函数 功能:创建一个径向基神经网络。径向基网络可以用来对一个函数进行逼近。newrb函数用来创建一个径向基网络,它可以是两参数网络,也可以是四参数网络。在网络的隐层添加神经元,直到网络满足指定的均方误差要求。 调用格式:net = newrb(P,T,GOAL,SPREAD) 参数说明: ?P:Q个输入向量构成的R×Q矩阵; ?T:Q个期望输出向量构成的S×Q矩阵; ?GOAL:均方误差要求,默认为0。 ?SPREAD:分散度参数,默认值为1。SPREAD越大,网络逼近的函数越平滑,但SPREAD取值过大将导致在逼近变化比较剧烈的函数时神经元过多,若SPREAD取值过小,则导致在逼近平滑函数时,

各种插值方法比较

空间插值可以有很多种分类方法,插值种类也难以举尽。在网上看到这篇文章,觉得虽然作者没能进行分类,但算法本身介绍地还是不错的。 在科学计算领域中,空间插值是一类常用的重要算法,很多相关软件都内置该算法,其中GodenSoftware 公司的Surfer软件具有很强的代表性,内置有比较全面的空间插值算法,主要包括: Inverse Distance to a Power(反距离加权插值法) Kriging(克里金插值法) Minimum Curvature(最小曲率) Modified Shepard's Method(改进谢别德法) Natural Neighbor(自然邻点插值法) Nearest Neighbor(最近邻点插值法) Polynomial Regression(多元回归法) Radial Basis Function(径向基函数法) Triangulation with Linear Interpolation(线性插值三角网法) Moving Average(移动平均法) Local Polynomial(局部多项式法) 下面简单说明不同算法的特点。 1、距离倒数乘方法 距离倒数乘方格网化方法是一个加权平均插值法,可以进行确切的或者圆滑的方式插值。方次参数控制着权系数如何随着离开一个格网结点距离的增加而下降。对于一个较大的方次,较近的数据点被给定一个较高的权重份额,对于一个较小的方次,权重比较均匀地分配给各数据点。计算一个格网结点时给予一个特定数据点的权值与指定方次的从结点到观测点的该结点被赋予距离倒数成比例。当计算一个格网结点时,配给的权重是一个分数,所有权重的总和等于1.0。当一个观测点与一个格网结点重合时,该观测点被给予一个实际为1.0 的权重,所有其它观测点被给予一个几乎为0.0 的权重。换言之,该结点被赋给与观测点一致的值。这就是一个准确插值。距离倒数法的特征之一是要在格网区域内产生围绕观测点位置的"牛眼"。用距离倒数格网化时可以指定一个圆滑参数。大于零的圆滑参数保证,对于一个特定的结点,没有哪个观测点被赋予全部的权值,即使观测点与该结点重合也是如此。圆滑参数通过修匀已被插值的格网来降低"牛眼"影响。 2、克里金法 克里金法是一种在许多领域都很有用的地质统计格网化方法。克里金法试图那样表示隐含在你的数据中的趋势,例如,高点会是沿一个脊连接,而不是被牛眼形等值线所孤立。克里金法中包含了几个因子:变化图模型,漂移类型和矿块效应。 3、最小曲率法 最小曲率法广泛用于地球科学。用最小曲率法生成的插值面类似于一个通过各个数据值的,具有最小弯曲量的长条形薄弹性片。最小曲率法,试图在尽可能严格地尊重数据的同时,生成尽可能圆滑的曲面。使用最小曲率法时要涉及到两个参数:最大残差参数和最大循环次数参数来控制最小曲率的收敛标准。 4、多元回归法 多元回归被用来确定你的数据的大规模的趋势和图案。你可以用几个选项来确定你需要的趋

核函数

SVM 小结 理论基础: 机器学习有三类基本的问题,即模式识别、函数逼近和概率密度估计. SVM 有着严格的理论基础,建立了一套较好的有限训练样本下机器学习的理论框架和通用方法。他与机器学习是密切相关的,很多理论甚至解决了机器学习领域的其他的问题,所以学习SVM 和机器学习是相辅相成的,两者可以互相促进,有助于机器学习理论本质的理解。 VC 维理论:对一个指示函数集,如果存在h 个样本能够被函数集中的函数按所有可能的2h 种形式分开,则称函数集能够把h 个样本打散;函数集的VC 维就是它能打散的最大样本数目。VC 维反映了函数集的学习能力,VC 维越太则学习机器越复杂(容量越太)。 期望风险:其公式为[](,,(,))(,)y R f c y f y dP y χχχχ?=?,其中(,,(,))c y f y χχ为损失函数,(,)P y χ为概率分布,期望风险的大小可以直观的理解为,当我们用()f χ进行预测时,“平均”的损失程度,或“平均”犯错误的程度。 经验风险最小化(ERM 准则)归纳原则:但是,只有样本却无法计算期望风险,因此,传统的学习方法用样本定义经验风险[]emp R f 作为对期望风险的估计,并设计学习算法使之最小化。即所谓的经验风险最小化(ERM 准则)归纳原则。经验风险是用损失函数来计算的。对于模式识别问题的损失函数来说,经验风险就是训练样本错误率;对于函数逼近问题的损失函数来说,就是平方训练误差;而对于概率密度估计问题的损失函数来说,ERM 准则就等价于最大似然法。但是,经验风险最小不一定意味着期望风险最小。其实,只有样本数目趋近于无穷大时,经验风险才有可能趋近于期望风险。但是很多问题中样本数目离无穷大很远,那么在有限样本下ERM 准则就不一定能使真实风险较小。ERM 准则不成功的一个例子就是神经网络和决策树的过学习问题(某些情况下,训练误差过小反而导致推广能力下降,或者说是训练误差过小导致了预测错误率的增加,即真实风险的增加)。 结构风险最小化理论(SRM):所以,在有限样本情况下,仅仅用ERM 来近似期望风险是行不通的。统计学习理论给出了期望风险[]R f 与经验风险[]emp R f 之间关系: [][]()emp h R f R f l φ≤+

高斯(核)函数简介

高斯(核)函数简介 1函数的基本概念 所谓径向基函数(Radial Basis Function简称RBF),就是某种沿径向对称的标量函数。通常定义为空间中任一点x到某一中心xc之间欧氏距离的单调函数,可记作k(||x-xc||),其作用往往是局部的,即当x远离xc时函数取值很小。最常用的径向基函数是高斯核函数,形式为k(||x-xc||)=exp{-||x-xc||^2/(2*σ)^2)}其中xc为核函数中心,σ为函数的宽度参数,控制了函数的径向作用范围。 高斯函数具有五个重要的性质,这些性质使得它在早期图像处理中特别有用.这些性质表明,高斯平滑滤波器无论在空间域还是在频率域都是十分有效的低通滤波器,且在实际图像处理中得到了工程人员的有效使用.高斯函数具有五个十分重要的性质,它们是: (1)二维高斯函数具有旋转对称性,即滤波器在各个方向上的平滑程度是相同的.一般来说,一幅图像的边缘方向是事先不知道的,因此,在滤波前是无法确定一个方向上比另一方向上需要更多的平滑.旋转对称性意味着高斯平滑滤波器在后续边缘检测中不会偏向任一方向. (2)高斯函数是单值函数.这表明,高斯滤波器用像素邻域的加权均值来代替该点的像素值,而每一邻域像素点权值是随该点与中心点的距离单调增减的.这一性质是很重要的,因为边缘是一种图像局部特征,如果平滑运算对离算子中心很远的像素点仍然有很大作用,则平滑运算会使图像失真. (3)高斯函数的付立叶变换频谱是单瓣的.正如下面所示,这一性质是高斯函数付立叶变换等于高斯函数本身这一事实的直接推论.图像常被不希望的高频信号所污染(噪声和细纹理).而所希望的图像特征(如边缘),既含有低频分量,又含有高频分量.高斯函数付立叶变换的单瓣意味着平滑图像不会被不需要的高频信号所污染,同时保留了大部分所需信号. (4)高斯滤波器宽度(决定着平滑程度)是由参数σ表征的,而且σ和平滑程度的关系是非常简单的.σ越大,高斯滤波器的频带就越宽,平滑程度就越好.通过调节平滑程度参数σ,可在图像特征过分模糊(过平滑)与平滑图像中由于噪声和细纹理所引起的过多的不希望突变量(欠平滑)之间取得折衷. (5)由于高斯函数的可分离性,大高斯滤波器可以得以有效地实现.二维高斯函数卷积可以分两步来进行,首先将图像与一维高斯函数进行卷积,然后将卷积结果与方向垂直的相同一维高斯函数卷积.因此,二维高斯滤波的计算量随滤波模板宽度成线性增长而不是成平方增长. 2函数的表达式和图形 在这里编辑公式很麻烦,所以这里就略去了。可以参看相关的书籍,仅给出matlab绘图的

核函数

生存?还是毁灭?——哈姆雷特 可分?还是不可分?——支持向量机 之前一直在讨论的线性分类器,器如其名(汗,这是什么说法啊),只能对线性可分的样本做处理。如果提供的样本线性不可分,结果很简单,线性分类器的求解程序会无限循环,永远也解不出来。这必然使得它的适用范围大大缩小,而它的很多优点我们实在不原意放弃,怎么办呢?是否有某种方法,让线性不可分的数据变得线性可分呢? 有!其思想说来也简单,来用一个二维平面中的分类问题作例子,你一看就会明白。事先声明,下面这个例子是网络早就有的,我一时找不到原作者的正确信息,在此借用,并加进了我自己的解说而已。 例子是下面这张图: 我们把横轴上端点a和b之间红色部分里的所有点定为正类,两边的黑色部分里的点定为负类。试问能找到一个线性函数把两类正确分开么?不能,因为二维空间里的线性函数就是指直线,显然找不到符合条件的直线。 但我们可以找到一条曲线,例如下面这一条:

显然通过点在这条曲线的上方还是下方就可以判断点所属的类别(你在横轴上随便找一点,算算这一点的函数值,会发现负类的点函数值一定比0大,而正类的一定比0小)。这条曲线就是我们熟知的二次曲线,它的函数表达式可以写为: 问题只是它不是一个线性函数,但是,下面要注意看了,新建一个向量y和a: 这样g(x)就可以转化为f(y)=,你可以把y和a分别回带一下,看看等不等于原来的g(x)。用内积的形式写你可能看不太清楚,实际上f(y)的形式就是: g(x)=f(y)=ay 在任意维度的空间中,这种形式的函数都是一个线性函数(只不过其中的a和y都是多维向量罢了),因为自变量y的次数不大于1。 看出妙在哪了么?原来在二维空间中一个线性不可分的问题,映射到四维空间后,变成了线性可分的!因此这也形成了我们最初想解决线性不可分问题的基本思路——向高维空间转化,使其变得线性可分。

地质数据处理_插值方法

二维数据场的插值方法 1.二维数据场描述及处理目的 数据场数据 {(xi,yi,zi), i=1,…,n}, 即某特征在二维空间中的n个预测值列表: 处理目的 了解该数据场的空间分布情况 处理思路 网格化 绘制等值线图

网格化方法: 二维数据插值 2.空间内插方法 Surfer8.0中常用的插值方法 Gridding Methods Inverse Distance to a Power(距离倒数加权) Kriging(克立格法) Minimum Curvature(最小曲率法) Modified Shepard's Method(改进Shepard方法) Natural Neighbor(近邻法) Nearest Neighbor(最近邻法) Polynomial Regression(多项式回归法) Radial Basis Function(径向基函数法) Triangulation with Linear Interpolation(线性插值三角形法) Moving Average(移动平均法) Data Metrics(数据度量方法) Local Polynomial(局部多项式法)

Geostatistics Analyst Model in ArcGIS 9 2.1反距离加权插值 反距离加权插值(Inverse Distance Weighting ,简称IDW ),反距离加权法是最常用的空间内插方法之一。它的基本原理是:空间上离得越近的物体其性质越相似,反之亦然。这种方法并没有考虑到区域化变量的空间变异性,所以仅仅是一种纯几何加权法。反距离加权插值的一般公式为: ∑==n i i i i y x Z y x Z 1),(),(λ 其中,0Z(x )为未知点0x 处的预测值,i Z(x )为已知点i x 处的值,n 为样点的数量,λ为样点的权重值,其计算公式为: n p p i i0 i0i 1d /d λ--==∑ 式中i0d 为未知点与各已知点之间的距离,p 是距离的幂。样点在预测过程中受参数p 的影响,幂越高, 内插的平滑效果越佳。 尽管反距离权重插值法很简单,易于实现,但它不能对内插的结果作精度评价,所得结果可能会出现很大的偏差,人为难以控制。 2.2全局多项式插值(趋势分析法) 根据有限的样本数据拟合一个表面来进行内插,称之为全局多项式内插方法。一般多采用多项式来进行拟合,求各样本点到该多项式的垂直距离的和,通过最小二乘法来获得多项式的系数,这样所得的表面可使各样本点到表面之间距

高斯核函数

高斯核函数所谓径向基函数(Radial Basis Function 简称RBF), 就是某种沿径向对称的标量函数。通常定义为空间中任一点x到某一中心xc之间欧氏距离的单调函数, 可记作k(||x-xc||), 其作用往往是局部的, 即当x远离xc时函数取值很小。 最常用的径向基函数是高斯核函数,形式为k(||x-xc||)=exp{- ||x-xc||^2/(2*σ)^2) } 其中xc 为核函数中心,σ为函数的宽度参数, 控制了函数的径向作用范围。 计算机视觉中的作用 在计算机视觉中,有时也简称为高斯函数。高斯函数具有五个重要的性质,这些性质使得它在早期图像处理中特别有用.这些性质表明,高斯平滑滤波器无论在空间域还是在频率域都是十分有效的低通滤波器,且在实际图像处理中得到了工程人员的有效使用.高斯函数具有五个十分重要的性质,它们是:(1)二维高斯函数具有旋转对称性,即滤波器在各个方向上的平滑程度是相同的.一般来说,一幅图像的边缘方向是事先不知道的,因此,在滤波前是无法确定一个方向上比另一方向上需要更多的平滑.旋转对称性意味着高斯平滑滤波器在后续边缘检测中不会偏向任一方向.(2)高斯函数是单值函数.这表明,高斯滤波器用像素邻域的加权均值来代替该点的像素值,而每一邻域像素点权值是随该点与中心点的距离单调增减的.这一性质是很重要的,因为边缘是一种图像局部特征,如果平滑运算对离算子中心很远的像素点仍然有很大作用,则平滑运算会使图像失真.(3)高斯函数的付立叶变换频谱是单瓣的.正如下面所示,这一性质是高斯函数付立叶变换等于高斯函数本身这一事实的直接推论.图像常被不希望的高频信号所污染(噪声和细纹理).而所希望的图像特征(如边缘),既含有低频分量,又含有高频分量.高斯函数付立叶变换的单瓣意味着平滑图像不会被不需要的高频信号所污染,同时保留了大部分所需信号.(4)高斯滤波器宽度(决定着平滑程度)是由参数σ表征的,而且σ和平滑程度的关系是非常简单的.σ越大,高斯滤波器的频带就越宽,平滑程度就越好.通过调节平滑程度参数σ,可在图像特征过分模糊(过平滑)与平滑图像中由于噪声和细纹理所引起的过多的不希望突变量(欠平滑)之间取得折衷.(5)由于高斯函数的可分离性,大高斯滤波器可以得以有效地实现.二维高斯函数卷积可以分两步来进行,首先将图像与一维高斯函数进行卷积,然后将卷积结果与方向垂直的相同一维高斯函数卷积.因此,二维高斯滤波的计算量随滤波模板宽度成线性增长而不是成平方增长.

基于径向基函数与B样条的散乱数据拟合方法

基于径向基函数与B 样条的散乱数据拟合方法 韩旭里,庄陈坚,刘新儒 中南大学数学科学与计算技术学院,湖南长沙 (410083) E-mail :zcjzym258@https://www.360docs.net/doc/e34775619.html, 摘 要:本文针对散乱数据的曲面拟合问题,提出了一种径向基函数与B 样条插值结合使用的曲面拟合方法.通过分片径向基函数插值,从三维散乱点获取有序网格点,利用张量积B 样条插值有序网格点,从而得到拟合曲面.该方法较好地解决了散乱数据插值和拟合的计算不稳定性问题.最后给出了算法实例. 关键词:曲面拟合; 高斯函数; 双三次B 样条插值; 径向基函数 1 引言 随着激光测距扫描等三维数据获取硬件技术的日趋完善,人们可以得到精度和密度都越来越高的物体表面三维数据,利用物体表面三维数据来建立真实物体数字模型也成为近年来国际图形学界的一种发展趋势,曲面重构作为这种建模方法的一个重要研究课题也得到了广泛的探讨和研究,成为国际上的研究热点之一.曲面重构可分为插值和逼近两种方法.曲面插值就是重构出来的目标曲面必须通过所有的采样点,包括型值点,边界及曲面内部法矢等信息;逼近曲面只是对采样点进行有权逼近,它不一定要求所有的采样点都落在目标曲面上,而只需要重构曲面满足用户的反求设计要求即可.本文笔者通过分析现有方法存在的困难,提出了一种基于径向基函数与B 样条结合使用的曲面拟合方法,较好地解决了散乱数据插值和拟合的计算不稳定性问题. 4][1][2][3][考虑用于多变量函数插值的径向基函数方法.给定函数R R →+:φ,对于数据{}R R f X d j j ?∈,,径向基函数插值法是要寻找如下形式的函数: ()(||||)j j f X a X X φ=?∑, 使其满足 ∑ (1) (||||).j k j k f a X X φ?=关于径向基函数,学者们已作了很多的工作,常用的径向基函数有: 10][7][8][9][(i) Kriging 方法的Gauss 分布函数: 22/)(σφr e r ?=(ii) Hardy 的Multi-Quadric 函数: ββφφ?+=+=) ()()()(2222r c r r c r ,(iii) Duchon 的薄板样条: 122)(ln )(+==k k r r r r r φφ,方程(1)对任何数据{}R R f X d j j ?∈,,当两两不同时都有解的充要条件是:对任 何两两不同的, 矩阵j X j X ||))(||(j k X X ?φ是非奇异的.正定函数是满足这种性质的函数.我们知道,Gauss 函数、逆Multi-Quadric 函数都是正定函数.对于数据量少的情况,径向基函数插值的结果较令人满意,而且计算也比较简单.但同时也存在一些问题,比如方程系数矩阵的条件数问题.径向基函数插值最终归结为求解一个线性方程组,在大数据时这是一个大规模矩阵的求逆问题.当数据较多时,得到的矩阵一般是数值不稳定的. 张量积B 样条插值也是实际中常用的插值方法.对于较均匀的矩形网格数据,其插值效

常见插值方法及其的介绍

常见插值方法及其介绍 Inverse Distance to a Power(反距离加权 插值法)”、 “Kriging(克里金插值法)”、 “Minimum Curvature(最小曲率)”、 “Modified Shepard's Method(改进别德法)”、 “Natural Neighbor(自然邻点插值法)”、 “Nearest Neighbor(最近邻点插值法)”、 “Polynomial Regression(多元回归法)”、 “Radial Basis Function(径向基函数法)”、 “Triangulation with Linear Interpolation(线性插值三角网法)”、 “Moving Average(移动平均法)”、 “Local Polynomial(局部多项式法)” 1、距离倒数乘方法 距离倒数乘方格网化方法是一个加权平均插值法,可以进行确切的或者圆滑的方式插值。方次参数 控制着权系数如何随着离开一个格网结点距离的增加而下降。对于一个较大的方次,较近的数据点被 给定一个较高的权重份额,对于一个较小的方次,权重比较均匀地分配给各数据点。 计算一个格网结点时给予一个特定数据点的权值与指定方次的从结点到观测点的该结点被赋予距 离倒数成比例。当计算一个格网结点时,配给的权重是一个分数,所有权重的总和等于1.0。当一个 观测点与一个格网结点重合时,该观测点被给予一个实际为 1.0 的权重,所有其它观测点

被给予一 个几乎为0.0 的权重。换言之,该结点被赋给与观测点一致的值。这就是一个准确插值。 距离倒数法的特征之一是要在格网区域产生围绕观测点位置的"牛眼"。用距离倒数格网化时可 以指定一个圆滑参数。大于零的圆滑参数保证,对于一个特定的结点,没有哪个观测点被赋予全部的 权值,即使观测点与该结点重合也是如此。圆滑参数通过修匀已被插值的格网来降低"牛眼"影响。 2、克里金法 克里金法是一种在许多领域都很有用的地质统计格网化方法。克里金法试图那样表示隐含在你的数 据中的趋势,例如,高点会是沿一个脊连接,而不是被牛眼形等值线所孤立。 克里金法中包含了几个因子:变化图模型,漂移类型和矿块效应。 3、最小曲率法 最小曲率法广泛用于地球科学。用最小曲率法生成的插值面类似于一个通过各个数据值的,具有最 小弯曲量的长条形薄弹性片。最小曲率法,试图在尽可能严格地尊重数据的同时,生成尽可能圆滑的 曲面。 使用最小曲率法时要涉及到两个参数:最大残差参数和最大循环次数参数来控制最小曲率的收敛 标准。 4、多元回归法 多元回归被用来确定你的数据的大规模的趋势和图案。你可以用几个选项来确定你需要的趋势面类 型。多元回归实际上不是插值器,因为它并不试图预测未知的Z 值。它实际上是一个趋势面分析作

径向基函数在动网格中的应用及可并行性研究

4 ·技术?/? TECHNOLOGY ·科研信息化技术与应用2012, 3(5): 4–12 径向基函数在动网格中的应用及可并行性研究 马文鹏,陆忠华,胡晓东 中国科学院计算机网络信息中心 超级计算中心,北京 100190摘 要: 关键词: Applications of Radial Basis Functions in Dynamic Mesh and Its Parallelizability Ma Wenpeng, Lu Zhonghua, Hu Xiaodong Supercomputing Center, Computer Network Information Center , Chinese Academy of Sciences , Beijing 100190, China Abstract: 径向基函数广泛应用于网格变形、气动外形优化设计、网格优化等领域。近年来,基于径向基函数的动网格技术得到了深入的研究和广泛的应用。本文结合计算流体力学和高性能计算的应用背景,从径向基函数对网格的变形质量和变形效率进行了总结和进一步研究:在网格变形方面,重点对比了不同基函数对同一网格运动变形能力和同一基函数对不同网格运动的适应能力;在网格变形效率方面,分析了算法在计算和存储的瓶颈所在,考虑了? OpenMP 和?GPU 这两种共享内存的加速方式,得到较好加速比。最后,分析了当网格规模增大时,动网格在分布式计算和存储模型?(MPI) 下的处理方法。 径向基函数;径向函数;动网格;网格变形;并行 Radial basis functions are widely used for mesh deformation, aerodynamic shape optimization, grid optimization, etc. Recently, dynamic mesh techniques based on radial basis functions are widely used and much more attention is paid to them. This paper summaries the quality and efficiency of mesh deformation with the applications of radial basis functions on both CFD (Computational Fluid Dynamics) and HPC (High Performance Computing). In addition, a further research is conducted on the following two aspects: the abilities to satisfy the same mesh motion among different radial basis functions and the abilities to satisfy different mesh motion using one radial basis function; computation and storage bottleneck are analyzed and then parallel solutions based on shared memory models including OpenMP and GPU are considered 基金项目:国家高技术研究发展计划 (863 计划) (2012AA01A304);国家自然科学基金 (91130019)

BP算法及径向基函数网络

BP 算法及径向基函数网络 B0503194班 高翔 1050319110 杨柳青 1050319113 题目1: 2.5 利用BP 算法及Sigmoid 算法,研究以下各函数的逼近问题: (1) 1 () , 1x 100f x x = ≤≤ (2) 10()log x , 1x 10f x =≤≤ (3) ()exp() , 1x 10f x x =-≤≤ (4) ()sin , 1x 2 f x x π =≤≤ 解:该题可以采用BP 神经网络或者是径向基函数网络来解决,首先给出我们利用BP 网络的解决方法,关于如何利用径向基函数网络来解决问题,放在2.6 题中的通过径向基函数网络解决XOR 问题一起讨论。 一、 概述 人工神经网络作为一门20世纪中叶起步的新技术,随着其理论的逐步完善,其应用日益广泛,应用领域也在不断拓展,已经在各个工程领域里得到了广泛的应用。通常神经网络技术主要应用在以下方面。 模式信息处理和模式识别。 最优化问题计算。 信息的智能化处理。 复杂控制。 信号处理。 在1959年,当时的两位美国工程师B.Widrow 和M.Hoff 提出了自适应线形元件。在 1969年,人工智能的创始人之一M.Minsky 和S.Papert 指出单层感知器只能够进行线形分类,对线形不可分的输入模式,哪怕是简单的异或逻辑运算,单层感知器也无能为力,而解决其的唯一方法就是设计训练出具有隐含层的多层神经网络。这一难题在1986年得到了解决。 1986年,D.E. Rumelhart 等人提出解决多层神经网络权值修正的算法——误差反向传播法(Error Back-Propagation )。这种算法也通常被应用在BP (Back-Propagation Network )中。 在目前,在人工神经网络的实际应用中,绝大部分的神经网络模型(80%--90%)是采

核函数

核函数 (2010-12-23 23:08:30) 分类:工作篇 标签: 校园 高斯核函数 所谓径向基函数(Radial Basis Function 简称 RBF), 就是某种沿径向对称的标量函数。通常定义为空间中任一点x到某一中心xc之间欧氏距离的单调函数, 可记作 k(||x-xc||), 其作用往往是局部的 , 即当x远离xc时函数取值很小。 高斯核函数 - 常用公式 最常用的径向基函数是高斯核函数 ,形式为 k(||x-xc||)=exp{- ||x-xc||^2/(2*σ)^2) } 其中xc为核函数中心,σ为函数的宽度参数 , 控制了函数的径向作用范围。 核函数简介 (1)核函数发展历史 早在1964年Aizermann等在势函数方法的研究中就将该技术引入到机器学习领域,但是直到1992年Vapnik等利用该技术成功地将线性SVMs推广到非线性SVMs时其潜力才得以充分挖掘。而核函数的理论则更为古老,Mercer定理可以追溯到1909年,再生核希尔伯特空间(ReproducingKernel Hilbert Space, RKHS)研究是在20世纪40年代开始的。 (2)核函数方法原理 根据模式识别理论,低维空间线性不可分的模式通过非线性映射到高维特征空间则可能实现线性可分,但是如果直接采用这种技术在高维空间进行分类或回归,则存在确定非线性映射函数的形式和参数、特征空间维数等问题,而最大的障碍则是在高维特征空间运算时存在的“维数灾难”。采用核函数技术可以有效地解决这样问题。 设x,z∈X,X属于R(n)空间,非线性函数Φ实现输入间X到特征空间F的映射,其中F属于R(m),n<(1) 其中:<, >为内积,K(x,z)为核函数。从式(1)可以看出,核函数将m维高维空间的内积运算转化为n维低维输入空间的核函数计算,从而巧妙地解决了在高维特征空间中计算的“维数灾难”等问题,从而为在高维特征空间解决复杂的分类或回归问题奠定了理论基础。 (3)核函数特点 核函数方法的广泛应用,与其特点是分不开的: 1)核函数的引入避免了“维数灾难”,大大减小了计算量。而输入空间的维数n对核函数矩阵无影响,因此,核函数方法可以有效处理高维输入。 2)无需知道非线性变换函数Φ的形式和参数.

代理模型中的径向基函数以及matlab程序

径向基函数 利用样本点x i的响应值, 通过基函数的线性叠加来计算待测点x 处响应值的径向基模型的基本形式如下: f x=w i??r i n i=1 =w Tφ 其中权系数w=w1,w2,···,w n T,φ= ?r1,?r2,···,?r n T r i= x?x i是待测点x与样本点x i之间的欧氏距离 ?r是径向函数 常用的径向函数有Gauss函数?r=exp ?r 2 c2 Multiquadric函数?r=r2+c21 2,c是给定大于零的常数 根据插值条件f x j=y i j=1,···,n,可得方程组 ??w=Y 矩阵?= ?ij= ? x i?x j 向量Y=y1,?,y n T i,j=1,?,n 在样本点不重合且函数?为征订函数,上式存在唯一解 w=??1?Y

附:MATLAB程序 %求解RBF方程的系数 function b=RBFMain() clc; clear; %读取插值点的数据 Num=xlsread('set_of_test.xlsx'); [row,line]=size(Num); %读取插值点的结果 F=xlsread('result_of_weight.xlsx'); %计算r值 r=eye(row); for i=1:row for j=1:row temp=0; for k=1:line temp=temp+(Num(i,k)-Num(j,k))^2; end r(i,j)= sqrt(temp+1); end end %求解方程系数 b=r\F; %写入excel xlswrite('set_of_coefficient.xlsx',b); end %RBF径向基函数主程序 function result=RBFMain2() clear;clc; %插值点 Input=xlsread('set_of_test.xlsx'); [row,line]=size(Input); %需要预测的一组插值点 X=xlsread('set_of_indict.xlsx'); %读取系数 b=xlsread('set_of_coefficient.xlsx'); %计算r值 r=[]; for i=1:row temp=0;

径向基核函数 (Radial Basis Function)–RBF

径向基核函数 (Radial Basis Function)–RBF 发表于297 天前?技术, 科研?评论数 8?被围观 3526 views+ 论文中又提到了RBF,虽然是个简单的核函数,但是也再总结一下。关于SVM中的核函数的选择,比较简单和应用比较广的是RBF。 所谓径向基函数 (Radial Basis Function 简称 RBF), 就是某种沿径向对称的标量函数。通常定义为空间中任一点x到某一中心xc之间欧氏距离的单调函数 , 可记作 k(||x-xc||), 其作用往往是局部的 , 即当x远离xc时函数取值很小。 最常用的径向基函数是高斯核函数 ,形式为 k(||x-xc||)=exp{- ||x-xc||^2/(2*σ)^2) } 其中xc为核函数中心,σ为函数的宽度参数 , 控制 了函数的径向作用范围。 建议首选RBF核函数,因为: 1.能够实现非线性映射;(线性核函数可以证明是他的一个特例;SIGMOID 核函数在某些参数上近似RBF的功能。) 2.参数的数量影响模型的复杂程度,多项式核函数参数较多。 3.the RBF kernel has less numerical difficulties. ———–那么,还记得为何要选用核函数么?———– 对于这个问题,在Jasper’s Java Jacal博客《SVM入门(七)为何需要核函数》中做了很详细的阐述,另外博主对于SVM德入门学习也是做了很详细的阐述,有兴趣的可以去学习,丕子觉得这个文章写得相当好,特意转载了过来,留念一下。 如果提供的样本线性不可分,结果很简单,线性分类器的求解程序会无限循环,永远也解不出来。这必然使得它的适用范围大大缩小,而它的很多优点我们实在不原意放弃,怎么办呢?是否有某种方法,让线性不可分的数据变得线性可分呢? 例子是下面这张图:

相关文档
最新文档