matlab norm函数_基于径向基函数(RBF)的无网格伪谱法与程序实现(8)——径向基函数插值...

参考资料

Gregory E. Fasshauer. Meshfree Approximation Methods with MATLAB.

P.19

数值实现

Matlab 2019a

地球物理局 地震波动力学实验室 无网格组

声明:
# 系列文章优先满足个人研究需求
# 欢迎批评指正,禁止转载

目录

https://zhuanlan.zhihu.com/p/158726820​zhuanlan.zhihu.com
1c24638e0ccd8ba5bb9eabb44220d5c2.png

径向基函数插值

现在,我们不再使用之前简单的距离矩阵,而是使用径向基函数展开式来求解

中的分散数据插值问题,方法是假设

通过施加插值条件找到系数

,从而求解线性方程组:

我们限于二维情况

。作为基本函数
,我们将同时使用高斯函数和之前产生欧氏距离矩阵的线性函数

Matlab脚本RBFInterpolation2D.m的代码与DistanceMatrixFit.m非常相似。它还使用了子函数DistanceMatrix.m。虽然编写适用于任何空间维度

的插值脚本很容易,但在这里使用基本的二维版本。

在第1行我们定义高斯RBF作为接受矩阵参数及其形状参数(即DistanceMatrix的输出)的Matlab匿名函数。我们可以在第一行用线性函数

或者其它可接受的RBF替换高斯函数的定义。
%   定义高斯RBF和形状参数

在第2-6行我们定义一个测试函数。这里我们使用Franke函数:

这是二维分散数据拟合的标准测试函数。注意,我们使用

表示
的两个分量。
%   定义Franke函数作为测试函数

我们使用的数据位置存储在文件Data2D_%d%s中,其中点数

取自级数
。字符
(代替
)用于表示单位点中的等距点或Halton点。在第7和8行中定义并加载数据点集。
% 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.com

haltonseq.m

石中居士:基于径向基函数(RBF)的无网格伪谱法与程序实现(4)——距离矩阵——实例:距离矩阵插值​zhuanlan.zhihu.com

87f6d0e25073cbde0cdefafefadfef38.png
图1 高斯RBF插值,epsilon = 21.1,N = 1089 Halton点

命令行窗口

RMS error:  1.398297e-02
Maximum error: 3.857234e-01

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值