欢迎访问 生活随笔!

生活随笔

当前位置: 首页 >

c2064 项不会计算为接受0个参数的函数_无网格法理论与Matlab程序设计(6)——传统径向基点插值(RPIM)形函数...

发布时间:2025/3/20 93 豆豆
生活随笔 收集整理的这篇文章主要介绍了 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(程序疑有误,建议对照原书检查,希望得到指正)

    clear

    RPIM_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)形函数...的全部内容,希望文章能够帮你解决所遇到的问题。

    如果觉得生活随笔网站内容还不错,欢迎将生活随笔推荐给好友。