收藏 分享(赏)

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

上传人:gsy285395 文档编号:7825144 上传时间:2019-05-27 格式:DOC 页数:3 大小:94.50KB
下载 相关 举报
编程实现Hermit多项式的逼近问题(智能控制技术试验).doc_第1页
第1页 / 共3页
编程实现Hermit多项式的逼近问题(智能控制技术试验).doc_第2页
第2页 / 共3页
编程实现Hermit多项式的逼近问题(智能控制技术试验).doc_第3页
第3页 / 共3页
亲,该文档总共3页,全部预览完了,如果喜欢就下载吧!
资源描述

1、1智能控制理论与应用实验实验三:利用 MATLAB神经网络工具箱编程实现 Hermit多项式逼近一、实验目的:(1)加深对神经网络控制概念的理解;(2)掌握神经网络工具箱的应用;(3)熟练编程操作。二、实验内容:利用 MATLAB神经网络工具箱编程实现 Hermit多项式逼近。3、实验步骤:F(x)=1.1*(1x+2*x )exp(x /2)22训练样本按以下方式产生:样本数 P=100,其中输入样本 X1服从区间-4,4内的均匀分布,样本输出为 F(xi)+ei,ei 为添加的噪声,服从均值为 0,标准差为 0.1的正态分布。(1)试用聚类方法求数据中心和扩展常数,输出权值和阈值用伪逆法求

2、解。隐节点数 M=10,隐节点重叠系数 =1,初始聚类中心取前 10个训练样本。(2)试用梯度算法训练 RBF网络,设 =0.001,M=10,初始权值为-0.1,0.1内的随机数,初始数据中心为-4.0,4.0内的随机数,初始扩展常数取0.1,0.3内的随机数,目标误差为 0.9,最大训练次数为 5000。(3)编写代码如下: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,

3、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);figurehold ongridplot(SamIn,SamOut,k+)plot(TestSamIn,TestSamOut,k-)xlabel(Input x);ylabel(Output y);2

4、Centers=SamIn(:,1:ClusterNum);NumberInClustem=zeros(ClusterNum,1);IndexInClusters=zeros(ClusterNum,SamNum);while 1NumberInClustem=zeros(ClusterNum,1);IndexInClusters=zeros(ClusterNum,SamNum);for i=1:SantNumAllDistance=dist(Center,SamIn(:,i);MinDist,Pos=min(AllDistance);NumberInClusters(pos)=NumberIn

5、Clusters(pos)+1;IndexInClusters(Pos,NumberInClusters(Pos)=i;endOldCenters=Centers;for i=1:ClusterNumIndex=IndexInClusters(i,1:NumberInClusters(i);Centers(:,i)=mean(SamIn(:,Index);endEqualNum=Sum(sun(Centers=OldCenters);if EqualNum=InDim*ClusterNum,break,endendAllDistances=dist(Centers,Centers);Maxim

6、um=max(max(AllDistances);for i=1:ClusterNumAllDistances(i,i)=Maximum+1;endSpreads=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=W2E

7、x(:,1:ClusterNum);B2=W2Ex(:,ClusterNum+1);TestDistance=dist(Centers,TestSamIn);TestSpreadsMat=repmat(Spreads,1,TeasSamNum);TestHiddenUnitOut=radbas(TestDistance./TestSpreadsMat);TestNNOut=W2*TestHiddenUnitOut+B2;plot(TestSamIn,TestNN+t,k-)(4)编写代码说明:3SamNum为训练样本数;TestSamNum为测试样本数;InDim为样本输入维数;Cluster

8、Num为隐节点数,即聚类样本数;Overdap为隐节点重叠系数;在 while语句之前将各类样本数初始化为零,语句如下:NumberInClustem=zeros(ClusterNum,1);IndexInClusters=zeros(ClusterNum,SamNum)表示各类语句的索取号;然后按照最小距离原则对所有样本进行分类,保存了旧的聚类中心后再重新计算各类的聚类中心,如果新旧聚类中心一致,则结束聚类。聚类结束之后开始计算各隐节点的扩展常数:计算隐节点数据中心间的距离,找出其中最大的一个距离,将对角线上的 0替换为较大的值,以隐节点间的最小距离作为扩展常数,计算各样本输入离各数据中心的距离,计算隐节点输出矩阵,求广义输出权值,输出权值,然后进行测试。四、得到的测试结果如下:

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 企业管理 > 管理学资料

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报