参考资料
Gregory E. Fasshauer. Meshfree Approximation Methods with MATLAB.
P.19
数值实现
Matlab 2019a
地球物理局 地震波动力学实验室 无网格组
声明:
# 系列文章优先满足个人研究需求
# 欢迎批评指正,禁止转载
目录
https://zhuanlan.zhihu.com/p/158726820zhuanlan.zhihu.com径向基函数插值
现在,我们不再使用之前简单的距离矩阵,而是使用径向基函数展开式来求解
通过施加插值条件找到系数
我们限于二维情况
Matlab脚本RBFInterpolation2D.m的代码与DistanceMatrixFit.m非常相似。它还使用了子函数DistanceMatrix.m。虽然编写适用于任何空间维度
在第1行我们定义高斯RBF作为接受矩阵参数及其形状参数(即DistanceMatrix的输出)的Matlab匿名函数。我们可以在第一行用线性函数
% 定义高斯RBF和形状参数
在第2-6行我们定义一个测试函数。这里我们使用Franke函数:
这是二维分散数据拟合的标准测试函数。注意,我们使用
% 定义Franke函数作为测试函数
我们使用的数据位置存储在文件Data2D_%d%s中,其中点数
% N = 1089; gridtype = 'h';
与前面的示例一样,这里我们仅考虑RBF的中心与数据位置一致的情况(第9行)。
ctrs
第10和11行中定义了用于评估我们的内插值,以进行渲染和误差计算的评估点网格。
neval
在第12行上计算测试数据(插值方程式的右侧),在第12行中在数据位置处对测试函数进行采样。
rhs
该代码的主要部分由第13-17行给出。注意,该部分与DistanceMatrixFit.m中的相应段(第7-9行)非常相似。唯一的区别是,我们现在将基本函数
% 计算数据位置和中心之间的距离矩阵
RBFinterpolation2D.m
% RBFInterpolation2D.m
PlotSurf.m
% PlotSurf.m
PlotError2D.m
% PlotError2D.m
DistanceMatrix.m
石中居士:基于径向基函数(RBF)的无网格伪谱法与程序实现(4)——距离矩阵——实例:距离矩阵插值zhuanlan.zhihu.comhaltonseq.m
石中居士:基于径向基函数(RBF)的无网格伪谱法与程序实现(4)——距离矩阵——实例:距离矩阵插值zhuanlan.zhihu.com命令行窗口
RMS error: 1.398297e-02
Maximum error: 3.857234e-01