完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
扫一扫,分享给好友
有没有谁会小波神经网络预测算法的设计啊,需要在matlab里面实现的,这是其中一部分,但是在MATLAB里面实现不了,有谁会完整的程序设计吗?着急啊,帮帮忙吧 %%网络初始化 Load fan_fault input output input_test output_test;%导入所有样本数据 M=size(input,7);%输入节点个数 N=size(ouput,7);%输出节点个数 n=5;%隐形节点个数 lr1=0.01;%学习概率 lr2=0.001;%学习概率 maxgen=100;%迭代次数 %权值初始化 Wjk=randn(n,M);Wjk_1=Wjk;Wjk_2=Wjk_1; Wij=randn(N,n);Wij_1=Wij;Wij_2=Wij_1; a= randn(1,n);a_1=a;a_2=a_1; b= randn(1,n);b_1=b;b_2=b_1; %节点初始化 y=zeros(1,N); net=zeros(1,N); net_ab=zeros(1,n); %权值学习增量初始化 d_Wjk=zeros(n,N); d_Wij=zeros(N,n); d_a=zeros(1,n); d_b=zeros(1,n); %%输入输出数据归一化 [inputn,inputps]=mapminmax(input’); [ouputn,ouputps]=mapminmax(ouput’); inputn=inputn’; ouputn=output’; %%网络训练 for i=1 :maxgen error(i)=0;%记录每次误差 %循环训练 for kk=1:size(inut,1) x=inputn(kk,:); yqw=ouputn(kk,:); %网络预测输出 for j=1:n for k=1:M net(j)=net(j)+Wjk(j,k)*x(k); net_ab(j)=(net(j)-b(j))/a(j); end temp=mymorlet(net_ab(j)); for k=1:N y=y+Wij(k,j)*temp; %小波函数 end end %误差累积 Error(i)=error(i)+sum(abs(yqw-y)); %权值调整 For j=1:n %计算d_Wij Temp=mymorlet(net_ab(j)); For k=1:N d_Wij(k,j)=d_Wij(k,j)-(yqw(k)-y(k))*temp; end %计算d_Wjk Temp=mymorlet(net_ab(j)); For k=1:M d_Wjk(j,k)=d_ Wjk(j,k)+(yqw(1)-y(1))* Wij(1,j); end %计算d_b For k =1:N d_b(j)=d_ b(j)+(yqw(k)-y(k))* Wij(k,j); end d_b(j)=d_ b(j)*temp/a(j); %计算d_a For k=1:N d_a(j)=d_ a(j)+(yqw(k)-y(k))* Wij(k,j); end d_a(j)=d_ a(j)*temp*((net(j)-b(j))/b(j))/a(j); end %权值参数更新 Wij=Wij-lr1*d_Wij; Wjk=Wjk-lr1*d_Wjk; b=b-lr2*d_b; a=a-lr2*d_a; d_Wjk=zeros(n,M); d_Wij=zeros(N,n); d_a=zeros(1,n); d_b=zeros(1,n); y=zeros(1,N); net=zeros(1,n); net_ab=zeros(1,n); Wjk_1= Wjk; Wjk_2= Wjk_1; Wij_1= Wij; Wij_2= Wij_1; a_1=a;a_2=a_1; b_1=b;b_2=b_1; end end %%网络预测 %预测输入归一化 x=mapminmax(‘apply’,input_test’,inputps); x=x’ %网络预测 for i=1:92 x_test=x(i,:); for j=1:1:n for k=1:1:M net(j)=net(j)+Wjk(j,k)*x_test(k); net_ab(j)=(net(j)-b(j))/a(j); end temp=mymorlet(net_ab(j)); for k=1:N y(k)=y(k)+Wij(k,j)*tempt; end end yuce(i)=y(k);%预测结果记录 y=zeros(1,N);%输出节点初始化 net=zeros(1:n);%隐含层初始化 net_ab=zeros(1,n);%隐含节点初始化 end %预测输出反归一化 Ynn=mapminmax(‘reverse’,yuce,outputps); %%网络预测结果 figure(1) plot(ynn,’r*:’) hold on plot(output_test,’bo—‘) title(‘预测值’,’fontsize’,12) legend(‘预测值’,’实际值’) xlabel(‘时间点’) ylabel(‘故障’) %%网络预测误差图形 figure(2) plot(error,’r*:’) hold on title(‘网络误差曲线’,’ fontsize’,12) legend(‘Wavelet Neural Network’,’Expecting Outionput Error’) xlabel(‘Iteration’) ylabel(‘Error’) |
|
相关推荐 |
|
你正在撰写答案
如果你是对答案或其他答案精选点评或询问,请使用“评论”功能。
1557 浏览 1 评论
200圆!求助大佬给一份VSG并网和离网模式的simulink仿真
1841 浏览 0 评论
MATLAB(3)--矩阵的引用(sub2ind、ind2sub、reshape函数使用)
2656 浏览 0 评论
2997 浏览 0 评论
4095 浏览 1 评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-22 22:22 , Processed in 0.374096 second(s), Total 41, Slave 34 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号