c2064 项不会计算为接受0个参数的函数_无网格法理论与Matlab程序设计(6)——传统径向基点插值(RPIM)形函数...
参考资料
G.R.Liu Y.T.GU著 王建明 周学军译 《无网格法理论及程序设计》
数值实现
Matlab 2019a
前情回顾
形式主义的居士:无网格法理论与Matlab程序设计(1)——概述zhuanlan.zhihu.com地球物理局 地震波场模拟实验室 无网格组 地球物理局 基建处 数值计算科声明:# 系列写作内容首先符合本人的研究需要,不会优先照顾读者体验。 # 仅供学习和参考,禁止转载。传统RPIM形函数
为避免采用多项式基PIM所引起的奇异性问题,径向基函数(RBF)被采用以形成径向基点插值法(RPIM)形函数用于无网格弱式法(GR Liu和Gu,2001c;Wang和Liu,2000;2002a,c)。RPIM形函数在无网格弱式法和强式法中均得到广泛应用。
添加多项式的RPIM插值可表示为:
式中,
为径向基函数(RBF), 为径向基函数的个数, 为空间坐标 的单项式, 为多项式基函数的个数。如 ,则为单纯的径向基函数;否则为添加了基函数的径向基函数。 和 为待定常数。在径向基函数
中,仅有表示计算点 与节点 之间距离的变量常用的径向基函数(RBF)有几种,这些RBFs的性质均已得到深入研究。最常用的4种分别为复合2次(MQ)、Gaussian(Exp)函数、薄板样条(TPS)函数以及对数型径向基函数。如下所示。在使用这些RBFs时,要确定几个形状参数,通常可根据给定问题的数值实验来确定。
复合2次(MQ):
Gaussian(EXP):
薄板样条(TPS):
对数型:
注:
为一与计算点 的局部支持域中的节点间距有关的特征长度;该长度通常等于局部支持域中的节点平均间距。另外还存在一类所谓紧支径向基函数(CSRBFs)。传统RBFs对于
小于或等于某一定值,为严格正定的,故可形成理想的 阶光滑。在CSRBF中,用一个形状参数 决定该CSRBF的局部支持域尺寸。当 时,其值视为零。然而CSRBFs较传统RBFs在表面拟合和求解力学问题时没有明显优势。Wu-C2:
Wu-C4:
Wendland-C2:
Wendland-C4:
Wendland-C6:
为局部支持域尺寸。(1)中的多项式项并不总是必需的。但采用单纯的径向基函数的RPIM形函数不能通过标准分片试验。另外添加多项式可以提高解的精度、使受形状参数影响的敏感性降低、对于某些径向基函数可提升稳定性。
为了确定(1)中的
和 ,需要形成计算点 的支持域,其中包括 个场节点。使(1)满足计算点 周围的 个节点值以确定系数 和 。这将产生 个线性方程,一个节点对应一个方程。这些方程可以表示为矩阵形式:式中的函数值向量
为径向基函数的力矩矩阵
为多项式力矩矩阵
为径向基函数的系数向量为
多项式系数向量为
在(5)中,
的 定义为然而(3)中有
个变量,可以使用下面 个约束条件添加 个方程联立(12)和(19),得到如下矩阵方程
式中
因为矩阵
对称,故矩阵 也是对称的。求解(11)可得到可将(1)重写为
利用(23)可得到
RPIM形函数可以表示为
对应于节点位移向量的RPIM形函数
可表示为(25)可重写为
可方便地得到
的导数其中
表示坐标 或 ,逗号表示对其后的空间坐标求偏导数。须指出,对于任意的节点分布
通常是存在的。另外由于(1)中所使用的多项式阶数相对较低,故通常情况下,RPIM局部支持域中使用少量节点(对于二维问题通常是10-40)不会引起奇异性问题。随着节点数增加,力矩矩阵
的条件数将会变差。可通过无网格全局配点法,即使用整个问题域中的所有节点构造计算公式,观察到上述结论。全局配点法的一个特性是有可能构造对称公式,在此不讨论。优缺点
使用局部支持域和RBFs基构造PIM形函数有以下优点:
- 使用RBFs可有效克服多项式PIM的奇异性问题。
- RPIM形函数是稳定的,故可适应任意不规则的节点分布。
- 便于构造三维RPIM形函数,因为在RBF中仅包含距离 变量。对于三维插值可方便地将距离表示为
- RPIM形函数较MLS形函数能更好地适应流体动力学问题。
但RPIM也存在一些缺点,如:
- RPIM形函数在解决固体问题时通常较MLS形函数和PIM形函数求解精度低。
- 一些形状函数需仔细决定,因为它们将影响在无网格法中使用RPIM形函数的求解精度及功效。
- RPIM形函数通常较多项式PIM的计算费用高,因为其要求局部支持域中包含更多的节点。
形函数性质
RPIM形函数性质为:
(1)
函数性RPIM形函数具有Kronecker
函数性质。(2)单位分解性
RPIM形函数拥有单位分解性质,即
如果将线性多项式添加到基中,则在基函数中含有常数项。该单位分解性质可利用RPIM形函数所拥有的的再生性质方便地得到证明。
对于CSRBF,如果采用纯粹的RBF,该单位分解性可很容易地得到证明,因为在CSRBFs中明显包含常数项。然而在某些RBFs中没有明显的常数项,如MQ-RBF。对于这些RBFs需采取必要措施使其明显包含常数项。
可将一个具有各阶连续导数的函数展开为无穷Taylor级数。如对于MQ-RBF,在
附近的Taylor级数展开为由式(32)可以清楚地看到其中包含一个常数项,因为MQ-RBF中的
。该常数基的存在可使RPIM形函数通过其再生性质再生出常数场。注意在局部域中再生一常数场的条件是在RPIM中利用各种RBFs获取精确解所必需的,因为式(3.92)可展开至无穷阶项。故式(31)在数值验证时只能近似而不能精确满足,由于数值舍弃误差的存在使得RBF的计算总是对应于有限项的Taylor级数展开。注意,TPS-RBF和对数型RBF不满足
的条件,故在使用TPS-RBF和对数型RBF时须添加多项式项以确保其RPIM形函数拥有单位分解性。(3)紧支性
RPIM形函数是紧支的,因为它是通过一紧支域的节点构造的,在该支持域以外不使用该形函数或认为其值为零。
(4)连续性
RPIM形函数通常拥有高阶连续性,因为其径向基函数是高阶连续的。
(5)再生性
至少含多项式项的RPIM能确保精确再生线性多项式。
注意,有些RBFs不具有线性再生性,即其RPIM在没有添加线性多项式项时不能再生任一线性场函数。例如在MQ-RBF中,由式(32)所示的其Taylor展开中不含线性项,因为
。这可能是使用MQ-RBFs所得到的 收敛性不佳的主要原因,故有时需在RPIM中添加线性多项式项以改善其性能。(6)协调性
在使用RPIM形函数时,如采用局部支持域,则总体域上的协调性无法保证。当节点进入或离开移动支持域时,其场函数的近似式可能是不连续的。
数值实现
对于一个二维域
,计算点的支持域常用圆形和矩形。矩形便于构造和应用,在此我们使用矩形域。矩形支持域的尺寸分别由
方向的 和 决定,即其中
和 分别为该支持域沿 和 方向的无量纲尺寸。为简化起见,常使用 。 和 为插值点 附近沿 和 方向的节点间距。如节点均匀分布,则 可简化为沿 方向的两相邻节点之间的间距,而 可简化为沿 方向的两相邻节点之间的间距。如节点非均匀分布, 和 可由求支持域中平均节点间距确定。2. 径向基函数形状参数
包括复合2次(MQ)-RBF、Gaussian(EXP)-RBF以及薄板样条(TPS)-RBF。RBFs中的参数需要事先确定。
(1)对于MQ-RBF,有两个形状参数
和 。在传统RBF中常取 。对于固体力学和流体力学, 或 时结果较好。节点间距 可表示为:式中
和 分别为定义在(1)中的沿 和 方向的节点间距。(2)对于EXP-RBF,仅含一个形状参数
,该值通常小于 。(3)对于TPS-RBF,仅含一个形状参数
。形状参数将对RBFs的性能产生影响,通常没有最佳理论值。
3. RPIM形函数计算
RPIM形函数可表示为:
RPIM形函数在解决固体问题时通常较MLS形函数和PIM形函数求解精度低。
采用线性方程求解器从而避免直接对
求逆。(3)可重新写为:故可得到
或
用标准线性方程求解器求解(6),可以直接得到RPIM形函数而不需计算
。而且利用(6)可以计算RPIM形函数的导数或
2阶导数为
故利用标准线性方程求解器分别求解(8)和(9)可获得RPIM形函数的导数。
4. 子程序流程图
RPIM形函数算例
通过一个支持域中包含25个节点的算例,说明传统RPIM形函数及其导数的性质。
该
个节点规则而均匀地分布在一矩形域: 和 。节点分布如上图和表所示。分析采用 个采样点用于计算形函数和绘图。我们给出一简单的主程序,采用影响域替代支持域。调整不同场节点影响域大小,以使所有
个场节点均包含在每个计算点的插值计算中。RPIM_main.m(程序疑有误,建议对照原书检查,希望得到指正)
clearRPIM_ShapeFunc_2D.m(程序疑有误,建议对照原书检查,希望得到指正)
%%%%%% 参考《无网格法理论及程序设计》%%%%%%%%%%%%%Compute_RadialBasis.m(程序疑有误,建议对照原书检查,希望得到指正)
% 参考《无网格法理论及程序设计》编制,源程序为Fortran语言GaussEqSolver_Sym.m(程序疑有误,建议对照原书检查,希望得到指正)
% 参考《无网格法理论及程序设计》编制,源程序为Fortran语言输出结果(与原书结果并不匹配)
Node x y Phi dPhidx dPhidy dPhidxx dPhidxy dPhidyy 1 -1.000 -1.000 2.09762 0.71158 0.83018 0.29273 -0.35030 0.184302 -1.000 -0.500 1.80278 0.75895 0.56921 0.26816 -0.27322 0.427543 -1.000 0.000 1.61245 0.79736 0.26579 0.24201 -0.14082 0.617534 -1.000 0.500 1.56525 0.80828 -0.06736 0.23352 0.03667 0.670515 -1.000 1.000 1.67332 0.78419 -0.39209 0.25162 0.20093 0.553026 -0.500 -1.000 1.85742 0.43705 0.87410 0.50510 -0.23852 0.147317 -0.500 -0.500 1.51658 0.47849 0.61520 0.52706 -0.20122 0.424858 -0.500 0.000 1.28452 0.52085 0.29763 0.54222 -0.11535 0.678169 -0.500 0.500 1.22474 0.53576 -0.07654 0.54568 0.03138 0.7608810 -0.500 1.000 1.36015 0.50492 -0.43279 0.53742 0.15763 0.5862111 0.000 -1.000 1.73205 0.12872 0.90103 0.63293 -0.07464 0.1210912 0.000 -0.500 1.36015 0.14426 0.64919 0.70631 -0.06756 0.4173213 0.000 0.000 1.09545 0.16625 0.33250 0.80828 -0.04595 0.7393514 0.000 0.500 1.02470 0.18080 -0.09040 0.87447 0.01478 0.8966315 0.000 1.000 1.18322 0.15653 -0.46960 0.76349 0.05753 0.6100716 0.500 -1.000 1.74642 -0.19238 0.89777 0.61753 0.11075 0.1244117 0.500 -0.500 1.37840 -0.21491 0.64472 0.68327 0.09925 0.4185918 0.500 0.000 1.11803 -0.24495 0.32660 0.76751 0.06532 0.7294019 0.500 0.500 1.04881 -0.26149 -0.08716 0.81203 -0.01987 0.8650120 0.500 1.000 1.20416 -0.23209 -0.46418 0.73196 -0.08334 0.6069421 1.000 -1.000 1.89737 -0.49496 0.86617 0.46713 0.26524 0.1545222 1.000 -0.500 1.56525 -0.53885 0.60621 0.47799 0.22002 0.4260423 1.000 0.000 1.34164 -0.58123 0.29062 0.48109 0.12273 0.6651824 1.000 0.500 1.28452 -0.59526 -0.07441 0.48042 -0.03296 0.7399525 1.000 1.000 1.41421 -0.56569 -0.42426 0.48083 -0.16971 0.57983总结
以上是生活随笔为你收集整理的c2064 项不会计算为接受0个参数的函数_无网格法理论与Matlab程序设计(6)——传统径向基点插值(RPIM)形函数...的全部内容,希望文章能够帮你解决所遇到的问题。
- 上一篇: mongodb 3.4 安装_Pytho
- 下一篇: m3u8文件在手机上用什么软件看_新技能