system: [SYSTEM]

user: 4. 径向基函数插值中形状参数的选取方法 对于径向基函数，形状参数c是一个自由参数。在实际应用过程中c的取值对计算结果有很大的影响，如何选取形状参数使得插值误差最小，一直是研究人员关注的课题。目前，形状参数c的选取有两种观点：一种观点认为参数c是常数，与样本点无关；另一种观点则认为c在每一个样本点处是可变的。以下将分别对这两类径向基函数归纳总结，并通过数值实验比较这些方法的优缺点。 4.1. 常参数径向基函数中形状参数的选取方法 Hardy [ 9 ] 早在1971年，就提出了MQ函数中形状参数的计算公式，对其研究的地形问题有很好的拟合能力。常参数径向基函数中，形状参数的选取方法可分为以下两种： 1) 优化误差确定法 显然误差是与形状参数c有关的，记为E(c)，优化误差法的基本思想：把形状参数的选取问题转化为优化误差的问题，即通过最小化误差，为给定的径向基函数选择最优形状参数。 Rippa [ 4 ] 定义了代价函数cost(c)来表示插值函数和实际未知函数之间的均方根误差，通过最小化代价函数，得到较好的形状参数。并从插值矩阵的条件数及计算精度、样本点的数量和分布、径向基函数类型三个方面证明了该选取方法的有效性。魏月兴，许林，陈小前 [ 7 ] 提出在控制Runge现象 [ 10 ] 的同时，最小化交叉验证误差获得形状参数的算法。该算法先确定c的初始值(c_init = mean(d j )，这里，d j 是x j 和其他样本点之间的最小距离)和步长(l = m/n)。魏月兴，陈小前，许林 [ 11 ] 利用MQ函数插值Rosenbroke函数，以插值矩阵条件数小于10 15 作为约束条件，最小化RMSE(c)，得到c的最优值。Roque和Ferreira [ 12 ] 在MQ形状参数的选择中，应用留一交叉验证(LOOCV) [ 13 ] 优化技术模拟给定边值问题的误差函数，并证明该方法适用于一维和二维情况。牛瑞萍 [ 5 ] 在利用逆MQ函数求解混合介质中Cauchy热传导反问题时，提出了一种自动选择算法，该算法通过最小化近似温度和给定温度值的残差选择合适的形状参数，并利用Tikhonov正则化 [ 14 ] 方法保证问题获得精确稳定的解。 2) 数值实验确定法 到目前为止，在用径向基函数解决具体插值问题或方程问题时，如何确定形状参数使得插值精度尽可能高，还没有普适性结论。因此，很多学者通过改变形状参数c的值，进行重复性插值数值实验，得出误差值，在这些误差值中选择最小误差，其对应的形状参数即为最优。这种确定形状参数最优值的方法比较机械，且缺乏普适性，但数值实验得出的部分结论，却对后面的研究探索有指导性意义。 Fasshauer [ 15 ] 用MQ函数对基于网格的非线性偏微分方程进行数值求解时，得出形状参数的选取公式 c = 2 / n 。聂鑫 [ 6 ] 用MQ插值求解边值问题时，指出插值精度和稳定性与形状参数相关，一维时，条件数对数与形状参数呈线性关系。形状参数较小时插值误差较大，而过大时又会发生剧烈振荡；随着节点数的增加，形状参数选取范围逐渐减小；只有参数在特定范围时才能取得较好的计算精度。齐静 [ 16 ] 用MQ函数、Gauss函数对一元函数 f ( x ) = sin ( 2 x ) 和二元函数 f ( x ) = sin ( 3 x ) sin ( 2 y ) 作插值的数值实验，均得到：c的取值越小，对应的误差也越小，因此在实际应用中可适当减小c的值。陈风雷 [ 17 ] 用MQ函数对函数 y = sin x ，分别模拟了p阶导数插值与p重积分插值的数值实验(p取1， 2， 3， 4)，给出了形状参数在积分插值方法中最适宜的取值范围是(0， 1/n)，在导数插值方法中最适宜的取值范围是(1/n， 3)，显然对于导数形状参数的取值要比积分形式稍微大；多重积分插值相对高阶导数插值更稳定、精度高，对于形状参数的选择更灵活。 4.2. 变参数径向基函数中形状参数的选取方法 Kansa [ 18 ] 最早发现，在使用MQ插值时，如果使形状参数随空间变化，则插值精度有提高的可能，对于变参数径向基函数 [ 19 ]，形状参数的选取方法可分为以下两种： 1) 公式确定法 根据形状参数就是该点对样本空间影响能力的意义，将该样本点与其他样本点之间的最小距离作为该样本点的形状参数，即 c j = min r j k ， j = 1 ， 2 ， ⋯ ， n ， j ≠ k (1) 其中，r jk 表示第j个样本点与第k个样本点的距离。由于样本点间的距离并不相等，每个样本点有不同的影响范围，为了很好地对原始函数进行拟合预测，当采样点个数 n → ∞ 的情况下，Kitayama [ 20 ] 提出了如公式(2)所示的形状参数确定方法。 c j = d j ， max α n − 1 α (2) 式中， d j ， max 为第j个样本点到其他样本点间的最大距离，α为原函数所含变量的个数。 2) 样本点局部密度确定法 武泽平 [ 8 ] [ 21 ] 选择Gauss函数作为序列近似优化算法的插值模型，指出形状参数c j 的本质物理意义是样本点对整个样本空间的影响范围大小，据此提出一种基于样本点局部密度确定形状参数的方法。该方法的基本思路为：计算每个样本点的局部密度ρ j 和影响体积分数v j (所有样本点的影响体积分数之和为1)。通过确定样本点的影响体积总和V t ，计算每个样本点的影响体积V j (V j 应该与其密度成反比)，变量V j 的n次方根即为形状参数c j 。 4.3. 数值实验 对函数 f = x sin ( 2 π x ) 1000 e x 在区间 x ∈ [ 0 ， 1 ] 上随机地取8个样本点： ( 0.1 ， 5.3185 × 10 − 5 ) ； ( 0.2 ， 1.5573 × 10 − 4 ) ； ( 0.49 ， 1.8849 × 10 − 5 ) ； ( 0.56 ， − 1.1775 × 10 − 4 ) ； ( 0.7 ， − 3.3060 × 10 − 4 ) ； ( 0.78 ， − 3.5122 × 10 − 4 ) ； ( 0.8 ， − 3.4187 × 10 − 4 ) ； ( 0.95 ， − 1.1353 × 10 − 4 ) 。 用Gauss函数对其进行插值，分别利用上述方法，选取形状参数，并画出误差图像，比较这些方法的拟合效果( α = 1 ， n = 8 ， m = 101 )。 4.3.1. 常参数径向基函数中形状参数的选取方法 1) 优化误差确定法 解决如下优化问题： { min E max ( c ) = min ( max | S ( x ， c ) − f ( x ) | x ) C o n d ( A ) ≤ 10 8 ， c ≥ 0 (3) 其中，A为径向基函数插值矩阵，利用Matlab软件编程，得到利用Gauss函数对原函数f(x)作插值的最优形状参数为 c o p t = 4 . 581 ，且当c取该值时， min ( E max ) = 2.2405 × 10 − 5 。图1、图2显示最优形状参数 c o p t = 4 . 581 时的插值效果图及误差图。 2) 数值实验确定法 对形状参数c分别取不同的值，用Matlab软件做插值实验，在矩阵非奇异的条件下，计算不同形状参数所对应的插值最大误差，部分结果如表1所示。最大误差值的最小值min(E max )对应最优形状参数。 Table 1 Shape parameters and corresponding error value 形状参数c 最大误差E max 形状参数c 最大误差E max 形状参数c 最大误差E max 0.512 5.5225 × 10 −5 1.5 7.6871 × 10 −6 1.78 1.8073 × 10 −6 0.5125 6.4989 × 10 −5 1.6 4.7137 × 10 −6 1.79 2.2016 × 10 −6 0.513 3.4267 × 10 −5 1.61 4.3870 × 10 −6 1.8 2.5984 × 10 −6 0.5131 3.8102 × 10 −5 1.63 3.7190 × 10 −6 2 1.0831 × 10 −5 0.514 8.4087 × 10 −5 1.65 3.0325 × 10 −6 3 3.6206 × 10 −5 0.52 7.6875 × 10 −5 1.67 2.3286 × 10 −6 4 2.8020 × 10 −5 0.53 1.9845 × 10 −5 1.69 1.6082 × 10 −6 4.5 2.3004 × 10 −5 0.55 3.1095 × 10 −5 1.7 1.2422 × 10 −6 4.6 2.2698 × 10 −5 0.6 1.0714 × 10 −5 1.73 1.2261 × 10 −7 4.6001 2.2700 × 10 −5 0.7 5.9968 × 10 −6 1.7301 1.2299 × 10 −7 4.601 2.2714 × 10 −5 0.8 9.1350 × 10 −6 1.731 1.3535 × 10 −7 4.61 2.2853 × 10 −5 0.9 1.1009 × 10 −5 1.74 3.0958 × 10 −7 4.7 2.4241 × 10 −5 1 1.2242 × 10 −5 1.75 6.4048 × 10 −7 5 2.8790 × 10 −5 1.1 1.2810 × 10 −5 1.76 1.0266 × 10 −6 7 9.1400 × 10 −5 1.3 1.1721 × 10 −5 1.77 1.4156 × 10 −6 8 1.2719 × 10 −4 表1. 各形状参数及对应误差值 从表1可以看出，利用Gauss函数对原函数f(x)作插值的最优形状参数为 c o p t = 1.73 ，且当c取该值时， min ( E max ) = 1.2261 × 10 − 7 。图3、图4显示最优形状参数 c o p t = 1.73 时的插值效果图及误差图。 图1、图3中插值曲线与原函数曲线基本吻合，说明选取的形状参数都有很好的插值拟合效果，但图4中误差达到10 −7 ，而图2的误差达到10 −5 。说明方法(2)选取的形状参数使得插值误差更小。另外，图4的误差整体波动较图2要小得多，说明方法(1)选取的形状参数使得误差变化幅度大。经计算，方法(1)的插值矩阵条件数 C o n d ( A ) = 3.0044 × 10 4 ，方法(2)的插值矩阵条件数 C o n d ( A ) = 5.3486 × 10 9 ，说明方法(1)选取的形状参数使得插值稳定性 [ 19 ] 高。图5显示了验证样本点的最大误差随形状参数的变化趋势，显然，整体上，最大误差E max 随形状参数c的增大先减小后增大。但当 c ∈ [ 0. 7 ， 4 . 6 ] 时最大误差有两次较大的波动，最优的形状参数正好对应两次波动的最低点。 图1. 原函数f(x)及其插值函数S(x) 图2. 插值误差图E(x) 图3. 原函数f(x)及其插值函数S(x) 图4. 插值误差图E(x) 图5. 最大误差E max 随形状参数c的变化图像 4.3.2. 变参数径向基函数中形状参数的选取方法 1) 公式确定法 根据公式(1)，计算出在各个样本点处的形状参数如表2所示。 利用表2中形状参数的值，确定径向基函数S(x)，编写Matlab程序，对原函数f(x)进行插值，得到插值曲线及误差图像如图6、图7所示。 Table 2 Shape parameters of each sample poin 样本点x j 0.1 0.2 0.49 0.56 0.7 0.78 0.8 0.95 形状参数c j 0.1 0.1 0.07 0.07 0.08 0.02 0.02 0.15 表2. 各样本点的形状参数 2) 样本点局部密度确定法 根据武泽平给出的方法步骤，计算出在各个样本点处的形状参数如表3所示。 利用表3中形状参数的值，确定径向基函数S(x)，编写Matlab程序，对原函数f(x)进行插值，得到插值曲线及误差图像如图8、图9所示。 Table 3 Related data to shape parameters of each sample point (take Vt = 2 采样点x j 0.1 0.2 0.49 0.56 0.7 0.78 0.8 0.95 密度值ρ j 1.0016 1.0016 1.0113 1.0114 1.0077 1.2834 1.2792 1.0001 密度倒数1/ρ j 0.9984 0.9984 0.9888 0.9887 0.9924 0.7792 0.7817 0.9999 影响体积分数v j 0.1326 0.1326 0.1314 0.1313 0.1318 0.1035 0.1038 0.1328 形状参数c j 0.2652 0.2652 0.2628 0.2626 0.2636 0.2070 0.2076 0.2656 表3. 各样本点形状参数相关数据(取V t = 2) 图6. 原函数f(x)及其插值函数S(x) 图7. 插值误差图E(x) 图8. 原函数f(x)及其插值函数S(x) 图9. 插值误差图E(x) 图6、图8中，当 x > 0.09 时，插值曲线与原函数曲线基本吻合，说明两种方法选取的形状参数在除起始端点的很小区间 x ∈ [ 0 ， 0.09 ] 外，都有比较好的插值拟合效果，方法(1)的 E max = 8.7201 × 10 − 5 (图7)，而方法(2)的 E max = 2.3055 × 10 − 4 (图9)，即优先选择方法(1)确定变参数径向基函数的形状参数，可使得插值误差更小。另外，除插值区间的两侧端点 x ∈ [ 0 ， 0.2 ] 及 [ 0.9 ， 1 ] 外，图7、图9的误差波动都很小。说明两种方法选取的形状参数使得误差变化幅度都很小。经计算，方法(1)的插值矩阵条件数 C o n d ( A ) = 1.8036 × 10 17 ；方法(2)的插值矩阵条件数 C o n d ( A ) = 1.7653 × 10 17 ；说明两种方法的插值稳定性相当。 4.3.3. 方法的比较与改进 对上述数值实验的结果进行比较发现，对于要求稳定性的热传导等问题，应该优先选用常参数径向基函数的方法(1)。而对于要求精确性的飞机外形设计等问题，应该优先选用常参数径向基函数的方法(2)。变参数径向基函数的两种方法都能保证插值误差波动较小，但插值精度都相对较低。从图6、图8可以看出，导致这种结果的原因是，在区间端点附近，插值误差明显很大。据此，我们需要提高端点附近的插值精度。 拉格朗日法是常用的数据插值方法，其公式结构整齐紧凑，在不增加插值节点的情况下，有比较好的拟合效果。因此，我们用下述分段函数(4)作为插值函数，结合Matlab软件编程拟合f(x)。得到插值曲线如图10、图11所示。 { L 1 ( x ) = ∑ j = 1 r 1 P j ( x ) f j x ∈ [ 0 ， 0.2 ] S ( x ) = ∑ j = 1 n λ j ϕ ( ‖ x − x j ‖ ) x ∈ [ 0.2 ， 0.9 ] L 2 ( x ) = ∑ j = 1 r 2 P j ( x ) f j x ∈ [ 0.9 ， 1 ] (4) 其中， P j ( x ) = ∏ k = 1 ， k ≠ j r x − x k x j − x k 为拉格朗日基本多项式(r为插值节点的个数， r 1 = 5 ， r 2 = 3 )。 图10. 改进后的方法(1)插值效果图 图11. 改进后的方法(2)插值效果图 图10、图11中，插值曲线与原函数曲线基本吻合，说明改进后的两种方法在整个区间 x ∈ [ 0 ， 1 ] 上都有很好的插值拟合效果。通过计算，改进后的方法(1)的拟合优度R 2 从0.9299变为0.9915；改进后的方法(2)的拟合优度R 2 从0.8165变为0.9803，这比常参数径向基函数中方法(1)的拟合优度0.9686都高，说明此改进方法可以有效提高插值精度。在实际工程问题中，我们同样可以使用上述方式对散乱数据进行处理，得到更好的插值拟合效果。