matlab simuff函数,神经网络技术在多元图表插值中的应用

0引言如何快速获得精确可靠的数据,是现在机械设计中的主要问题之一。目前工程上的常规插值法大都为一元平面插值,或二元空间插值,因而现有的对图表做插值计算是用一些插值方法如拉格朗日法,分元插值。分元插值相当于连续做一(或二)元插值,对计算速度有影响。如果在工程中遇到三元及三元以上的非线性插值问题时,采用神经网络技术只要通过非线性插值节点的学习,就能逼近任意非线性函数。特别对于多元非线性函数,更能发挥它的特长。利用MATLAB的神经网络工具箱,建立一个BP网络模型,并对其进行学习和训练,达到对多元图表插值的目的。1BP网络分析及算法分析BP网络是目前应用最广泛的神经网络模型。它的学习规则就是通过反向传播(BP)来调整网络的权值和阈值使网络误差的平方和最小,这是通过在下降方向上不断调整网络的权值和阈值来实现的。BP网络具有强大的非线性映射能力和泛化功能,任一连续函数或映射均可采用3层网络加以实现。网络结构如图1所示。图1网络结构图BP算法的本质是对样本集{(xp,yp),p=1,…P}进行建模,即建立对应关系RmRn,xkRm,ykRn;从数学的角度说,它通过函数逼近拟合曲面(线),将问题转化为一个非线性优化问题来求解。BP算法从最后一层(输出层)的误差(总误差)出发,反向逐层向前递归计算权系数调整量,对权系数进行调整。调整方向由梯度下降法确定。从理论上说,BP网络能逼近任意的非线性映射。实际应用中,传统BP法还存在很多问题,如学习速度缓慢、逼近精度不高、容易陷入局部解和网络泛化能力较差等。神经网络工具箱自身所带的函数就能改进这些不足。2基于神经网络工具箱的BP网络学习和训练在对BP网络进行训练和学习时,需要用的62《机械与电子》2002(5)MATLAB的函数有:initff,trainbp,simuff,等。在设计BP网络时,只要已知输入向量p,各层的神经元数,各层神经元的传递函数,就可以利用initff函数对BP网络进行初始化。例如1个3层的BP网络(不包括输入层),隐层有8个神经元,传递函数为tansig(正切型函数),输出层神经元数由目标向量t决定,传递函数purelin(纯线性函数),BP该网络的初始化语句为:[w1,b1,w2,b2]=initff(p,8,'tansig',t,'purelin');用户在准备数据样本时,向量p应该包括所有输入值中的最大值和最小值,这样才能保证得到最佳的初始值。MATLAB的BP神经网络工具箱函数tri-anbp,trainbpx,trainlm,用来对BP网络进行训练,它解决了BP算法的不足。函数trainbp利用标准BP学习规则训练前馈网络,使网络完成函数逼近,矢量分类和模式识别;trainbpx采用动量法和学习率自适应调整的策略,从而提高速度增加算法的可靠性;trainlm使用了LevenbergMarquardt优化方法,学习时间更短,但对于复杂的问题,这种方法需要较大的存储空间。动量法降低了网络对于误差曲面局部细节的敏感性,有效的抑制网络陷于局部极小,自适应调整学习率有利于缩短学习时间。因此,我们可以很方便的使用神经网络工具箱所提供的训练函数对其进行训练并能同时弥补BP算法的不足。前馈网络由一系列网络层组成,每一层都从前一层得到输入数据,simuff函数可用于仿真最多3层的前馈网络:a=simuff(p.,w1,b1,'tansig',w2,b2,'purelin')上式p为输入结果,a为预测结果,经过训练得到了新的权值矩阵w1,w2,阈值矢量b1,b2。3应用MATLAB神经网络对图表进行插值在

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值