matlab rbf函数_基于径向基函数(RBF)的无网格伪谱法与程序实现(2)——微分矩阵...
参考资料
Gregory E. Fasshauer. Meshfree Approximation Methods with MATLAB.
P.387 P401
数值实现
Matlab 2019a
地球物理局 地震波动力学实验室 无网格组声明:
# 系列文章优先满足个人研究需求
# 欢迎批评指正,禁止转载
目录
石中居士:基于径向基函数(RBF)的无网格伪谱法与程序实现——目录zhuanlan.zhihu.com
微分矩阵
为了了解如何找到一个微分矩阵,考虑展开式(1),并令
如果我们在配点
或者用矩阵-向量表示:
其中
评估矩阵(evaluation matrix)
通过线性,我们还可以用展开式(1),通过对基函数进行微分,来计算
如果我们再一次在配点
其中
导数矩阵(derivative matrix)
为了获得微分矩阵
这既取决于选择的基函数,也取决于配点
现在我们已经讨论了
所以对应于(2)的微分矩阵
对于具有常系数的更复杂的线性微分算子
其中矩阵
在伪谱法的背景中,微分矩阵
例子
为了更深入地了解径向基函数的特殊性质,我们通过忽略边界条件,假定求解形式为
其中
我们看到,为了进行下一步,
如上所述,基于Chebyshev多项式的伪谱法的微分矩阵是奇异的。这是很自然的,因为仅根据其导数的值重建未知函数的问题是不适定的。
但是,如果使用径向基函数,则引用广义Hermite插值结果可确保矩阵
上面进行的观察表明,RBF方法有时“效果太好了以至于显得太假”。它们甚至可以为不适定的问题提供“解”。这是最优性原理的结果,即,由于本质空间范数的最小化变量,RBF方法具有内置的正则化功能。RBF的这一有趣功能最近已用于求解不适定问题(例如,参见Cheng and Cabral(2005))。
用MATLAB计算RBF微分矩阵
我们首先说明如何计算离散微分算子(微分矩阵)。
例如,为了计算一阶微分矩阵,我们需要记住——通过链式法则——RBF的导数将具有一般形式:
因此,我们不仅需要距离
r = DistanceMatrix(x,x); % 距离矩阵计算dx = DifferenceMatrix(x,x); % 微分矩阵计算
DistanceMatrix.m
% Gregory E. Fasshauer. Meshfree Approximation Methods with MATLAB.
% 地球物理局 地震波动力学实验室 无网格组function DM = DistanceMatrix(dsites,ctrs)
% 输入:
% dsites:M*s矩阵,代表一组R^s空间(即:每行包含一个s维点)中M数据点集
% ctrs:N*s矩阵,代表一组R^s空间中N中心(每列一个中心)
% DM:M*N矩阵,i,j位置包含第i个数据点和第j个中心之间的欧几里得距离[M,s] = size(dsites);[N,s] = size(ctrs);DM = zeros(M,N);
% 累积坐标差的平方和
% ndgrid命令产生两个M*N矩阵:
% dr:包含N个相同的列(每一列包含M数据点的第d个坐标)
% cc:包含M个相同的行(每一行包含N中心的第d个坐标)for d = 1:s[dr,cc] = ndgrid(dsites(:,d),ctrs(:,d)); % ndgrid:n维空间中的矩形网格DM = DM + (dr - cc).^2;endDM = sqrt(DM);
end
DifferenceMatrix.m
% Gregory E. Fasshauer. Meshfree Approximation Methods with MATLAB.
% P.342
% 地球物理局 地震波动力学实验室 无网格组function DM = DifferenceMatrix(datacoord,centercoord)
% 构成R中两组点的微分矩阵
% (R^s中有一些固定点坐标),即
% DM(j,k) = datacoord_j - centercoord_k
% ndgrid命令产生两个M*N矩阵
% dr和cc[dr,cc] = ndgrid(datacoord(:),centercoord(:));DM = dr - cc;
end
根据前面的讨论,微分矩阵由
A = rbf(ep,r);Ax = dxrbf(ep,r,dx);D = Ax/A;
注意,在Matlab中使用
为了完成程序,还要包括留一法交叉验证以优化RBF形状参数的步骤。这样对于矩阵问题
mine = 0.1; maxe = 10; % 形参数区间ep = fminbnd(@(ep) CostEpsilonDRBF(ep,r,dx,rbf,dxrbf),mine,maxe);fprintf('Using epsilon = %fn',ep);
CostEpsilonDRBF.m
% Gregory E. Fasshauer. Meshfree Approximation Methods with MATLAB.
% P.402
% 地球物理局 地震波动力学实验室 无网格组function ceps = CostEpsilonDRBF(ep,r,dx,rbf,dxrbf)
% 提供epsilon的代价函数,用于形状参数LOOCV最优化
% ep:形参数的值
% r,dx:距离与微分矩阵
% rbf,dxrbf:rbf及其导数的定义N = size(r,2);A = rbf(ep,r); % A^T 因为A是对称的rhs = dxrbf(ep,r,dx)'; % A_x^TinvA = pinv(A);EF = (invA*rhs)./repmat(diag(invA),1,N); % repmat:复制和平铺矩阵ceps = norm(EF(:));
end
现在我们计算右端的对应于矩阵
因此,综上所述,得到一维情况下计算微分矩阵的程序DRBF.m。
DRBF.m
% Gregory E. Fasshauer. Meshfree Approximation Methods with MATLAB.
% P.402
% 地球物理局 地震波动力学实验室 无网格组function [D,x] = DRBF(N,rbf,dxrbf)
% 计算对于一维导数的微分矩阵D
% 使用Chebyshev点,对于最优化形状参数采用LOOCV
% 输入:
% N:创建N+1个配点
% rbf,dxrbf:函数句柄,表示rbf及其导数if N == 0D = 0;x = 1;returnendx = cos(pi*(0:N)/N)'; % Chebyshev点mine = 0.1;maxe = 10; % 形参数区间r = DistanceMatrix(x,x); % 距离矩阵计算dx = DifferenceMatrix(x,x); % 微分矩阵计算ep = fminbnd(@(ep) CostEpsilonDRBF(ep,r,dx,rbf,dxrbf),mine,maxe);fprintf('Using epsilon = %fn',ep);A = rbf(ep,r);Ax = dxrbf(ep,r,dx);D = Ax/A;
end
matlab rbf函数_基于径向基函数(RBF)的无网格伪谱法与程序实现(2)——微分矩阵...相关推荐
- 基于径向基函数RBF神经网络的非线性函数拟合研究-含Matlab代码
目录 一.RBF神经网络基本原理 二.模型建立 三.RBF网络拟合结果分析 四.注意事项 五.参考文献 六.Matlab代码获取 一.RBF神经网络基本原理 1988年Broomhead和Lowe将径 ...
- 基于径向基函数(RBF)的函数插值
基于径向基函数的函数插值 1. 函数插值 2. RBF函数插值 代码实现 1. 函数插值 函数插值问题: 用形式简单的插值函数 f^(x)\hat f(x)f^(x) 近似原函数 (1)\qquad ...
- python rbf神经网络_原创,基于径向基函数(RBF)神经网络RBF网络的举例应用!
function RBF_NN_Example() clc clear all % 创建训练样本 % 线性函数的训练 Mn_Train=100*[rand(1,5) rand(1,5)+0.5 r ...
- 径向基函数模型matlab,径向基函数RBF.ppt
径向基函数RBF 2006-12-12 北京科技大学 付冬梅 * 例 建立一个径向基神经网络,对非线性函数y=sqrt(x)进行逼近,并作出网络的逼近误差曲线. 6-7 RBF网络的MATLAB函数及 ...
- 机器学习算法-09-深度学习、BP神经网络、Hopfield神经网络、基于数学原理的神经网络、径向基函数RBF(B站一条会说666的咸鱼)
Deep Learning 深度学习的概念源于人工神经网络的研究,含多隐层的多层感知器就是有一种深度学些的结构 ,深度学习通过组合低层特征形成更加抽象的高层表示属性类别或特征,以发现数据的分布式特征的 ...
- 径向基函数RBF三维网格变形
前言 之前写过径向基函数(RBF)神经网络做分类或者拟合.然后挖了个坑说在<Phase-Functioned Neural Networks for Character Control>里 ...
- 高斯径向基函数(RBF)神经网络
高斯径向基函数(RBF)神经网络 牛顿插值法-知乎 泰勒公式 径向基函数-wiki 径向基网络之bp训练 RBF网络逼近能力及其算法 线性/非线性,使用"多项式"逼近非线性,通过调 ...
- 径向基函数(rbf)神经网络 基础篇 奥利给 干就完了!
今天咱们就一起把径向基函数神经网络翻个底朝天,好好琢磨一下哈.老铁,走着. ![在这里插入图片描述](https://img-blog.csdnimg.cn/2019112613170742.png? ...
- rbf神经网络_基于RBF神经网络的监督控制(09)
1.RBF监督控制 基于RBF神经网络的监督控制系统,其控制思想是:初始阶段采用PD反馈控制,然后过渡到神经网络控制.在控制过程中,如出现较大的误差,则PD控制起主导作用,神经网络控制起调节作用. 图 ...
最新文章
- 帆软填报提交显示违反唯一约束_贵州2020年高考网上填报志愿时间确定!这些事项需要注意...
- MyEclipse设置文件编码
- python中、文件最重要的功能是( )和接收数据_Python基础语法14个知识点大串讲
- 论文浅尝 | 神经符号推理综述(下)
- 织梦dedecms转WordPress方法(脚本一键转换)
- 值类型和引用类型的区别?
- 荣之联:生物云仅仅是开始
- Mac版Java反编译工具jd-gui解压即用
- 【Protel】Protel99SE(附汉化包+SP6+增强工具+视频教程)
- SU插件|TopoShaper生成地形 免费下载及介绍(SketchUp草图大师必备)!
- html5 drag api
- 【万人千题】结对编程排位赛(第一期) 第一周 排名公布,这也太卷了
- CocosDashboard课堂笔记
- 10天精读掌握:计算机组成与设计COAD:Patterson and Hennessy 第7天 2018/11.1
- EMI共模电感一般什么材质你知道吗
- 全国计算机等级考试二级 C 语言 程序设计考试大纲
- wps表格l制作甘特图_甘特图是什么?-如何用WPS表格做甘特图
- 安卓系统开发下载和安装JRE
- 能力、态度、业绩——绩效考核三要素
- dell 7040m 黑苹果_ARTS Tips:黑苹果核显问题解决