编程实现Hermit多项式的逼近问题(智能控制技术试验).docVIP

编程实现Hermit多项式的逼近问题(智能控制技术试验).doc

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
智能控制理论与应用实验 实验三:利用MATLAB神经网络工具箱编程实现Hermit多项式逼近 一、实验目的: (1)加深对神经网络控制概念的理解; (2)掌握神经网络工具箱的应用; (3)熟练编程操作。 二、实验内容: 利用MATLAB神经网络工具箱编程实现Hermit多项式逼近。 实验步骤: F(x)=1.1*(1—x+2*x)exp(—x/2) 训练样本按以下方式产生:样本数P=100,其中输入样本X1服从区间[-4,4]内的均匀分布,样本输出为F(xi)+ei,ei为添加的噪声,服从均值为0,标准差为0.1的正态分布。 试用聚类方法求数据中心和扩展常数,输出权值和阈值用伪逆法求解。隐节点数M=10,隐节点重叠系数λ=1,初始聚类中心取前10个训练样本。 试用梯度算法训练RBF网络,设η=0.001,M=10,初始权值为[-0.1,0.1]内的随机数,初始数据中心为[-4.0,4.0]内的随机数,初始扩展常数取[0.1,0.3]内的随机数,目标误差为0.9,最大训练次数为5000。 编写代码如下: function main() SamNum=100; TestSamNum=101; InDim=1; ClusterNum=10; Overdap=1.0; rand(state,sum(100*clock)) NoiseVar=0.1; Noise=NoiseVar*rand(1,SamNum); Samln=8*rand(1,SamNum)-4; SamOutNoNoise=1.1*(1-SamIn+2*SamIn.^2).*exp(-SamIn.^2/2); SamOut=SamOutNoNoise+Noise; TestSamIn=-4:0.08:4; TestSamOut=1.1*(1-TestSamIn+2*TestSamIn.^2).*exp(-TestSamIn.^2/2); figure hold on grid plot(SamIn,SamOut,k+) plot(TestSamIn,TestSamOut,k-) xlabel(Input x); ylabel(Output y); Centers=SamIn(:,1:ClusterNum); NumberInClustem=zeros(ClusterNum,1); IndexInClusters=zeros(ClusterNum,SamNum); while 1 NumberInClustem=zeros(ClusterNum,1); IndexInClusters=zeros(ClusterNum,SamNum); for i=1:SantNum AllDistance=dist(Center,SamIn(:,i); [MinDist,Pos]=min(AllDistance); NumberInClusters(pos)=NumberInClusters(pos)+1; IndexInClusters(Pos,NumberInClusters(Pos))=i; end OldCenters=Centers; for i=1:ClusterNum Index=IndexInClusters(i,1:NumberInClusters((i)); Centers(:,i)=mean(SamIn(:,Index)); end EqualNum=Sum(sun(Centers==OldCenters)); if EqualNum==InDim*ClusterNum, break, end end AllDistances=dist(Centers,Centers); Maximum=max(max(AllDistances)); for i=1:ClusterNum AllDistances(i,i)=Maximum+1; end Spreads=Overlap*min(AllDistances); Distance=dist(Centers,SamIn); SpreadsMat=repmat(Spreads,1,SamNunl); HiddenUnitOut=radbas(Distance./SpreadsMat) HiddenUnitOutEx=[HiddenUnitOutones(SamNum,1)]; W2Ex=SamOut*pinv(HiddenUnitOutEx); W2=W2Ex(:,1:ClusterNum); B2=W2Ex(:,ClusterN

文档评论(0)

天马行空 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档