当前位置:网站首页>【模糊神经网络预测】基于模糊神经网络实现水质预测含Matlab源码
【模糊神经网络预测】基于模糊神经网络实现水质预测含Matlab源码
2022-06-30 03:40:00 【Matlab科研工作室】
1 简介
一种基于模糊小波神经网络的水质评价预测方法,目的在于解决BP神经网络在进行水质预测时收敛速度较慢,逼近效果差,预测结果不精准的问题,以已知水质分析指标个数为,预测指标个数,模糊规则数构建模糊小波神经网络预测模型,模糊小波神经网络预测模型包括输入层,隶属层,模糊规则层,小波层,输出层和解模糊层;对隶属函数参数,小波层的小波参数进行调整,并定义代价函数,使用以梯度下降法为基础的BP算法进行参数调整,为避免收敛速度慢,容易陷于震荡效应和局部最优,增加模型稳定性,采用人工蜂群算法优化初始参数,本专利方法主要用于预测水质指标.
2 部分代码
%---------------------------------------------%%%---------------------------------------------%%% 清空环境变量clcclear%% 参数初始化xite=0.001;alfa=0.05;%网络节点I=6; %输入节点数M=12; %隐含节点数O=1; %输出节点数%系数初始化p0=0.3*ones(M,1);p0_1=p0;p0_2=p0_1;p1=0.3*ones(M,1);p1_1=p1;p1_2=p1_1;p2=0.3*ones(M,1);p2_1=p2;p2_2=p2_1;p3=0.3*ones(M,1);p3_1=p3;p3_2=p3_1;p4=0.3*ones(M,1);p4_1=p4;p4_2=p4_1;p5=0.3*ones(M,1);p5_1=p5;p5_2=p5_1;p6=0.3*ones(M,1);p6_1=p6;p6_2=p6_1;%参数初始化c=1+rands(M,I);c_1=c;c_2=c_1;b=1+rands(M,I);b_1=b;b_2=b_1;maxgen=100; %进化次数%网络测试数据,并对数据归一化load data1 input_train output_train input_test output_test%选连样本输入输出数据归一化[inputn,inputps]=mapminmax(input_train);[outputn,outputps]=mapminmax(output_train);[n,m]=size(input_train);%% 网络训练%循环开始,进化网络for iii=1:maxgeniiifor k=1:mx=inputn(:,k);%输出层结算for i=1:Ifor j=1:Mu(i,j)=exp(-(x(i)-c(j,i))^2/b(j,i));endend%模糊规则计算for i=1:Mw(i)=u(1,i)*u(2,i)*u(3,i)*u(4,i)*u(5,i)*u(6,i);endaddw=sum(w);for i=1:Myi(i)=p0_1(i)+p1_1(i)*x(1)+p2_1(i)*x(2)+p3_1(i)*x(3)+p4_1(i)*x(4)+p5_1(i)*x(5)+p6_1(i)*x(6);endaddyw=yi*w';%网络预测计算yn(k)=addyw/addw;e(k)=outputn(k)-yn(k);%计算p的变化值d_p=zeros(M,1);d_p=xite*e(k)*w./addw;d_p=d_p';%计算b变化值d_b=0*b_1;for i=1:Mfor j=1:Id_b(i,j)=xite*e(k)*(yi(i)*addw-addyw)*(x(j)-c(i,j))^2*w(i)/(b(i,j)^2*addw^2);endend%更新c变化值for i=1:Mfor j=1:Id_c(i,j)=xite*e(k)*(yi(i)*addw-addyw)*2*(x(j)-c(i,j))*w(i)/(b(i,j)*addw^2);endendp0=p0_1+ d_p+alfa*(p0_1-p0_2);p1=p1_1+ d_p*x(1)+alfa*(p1_1-p1_2);p2=p2_1+ d_p*x(2)+alfa*(p2_1-p2_2);p3=p3_1+ d_p*x(3)+alfa*(p3_1-p3_2);p4=p4_1+ d_p*x(4)+alfa*(p4_1-p4_2);p5=p5_1+ d_p*x(5)+alfa*(p5_1-p5_2);p6=p6_1+ d_p*x(6)+alfa*(p6_1-p6_2);b=b_1+d_b+alfa*(b_1-b_2);c=c_1+d_c+alfa*(c_1-c_2);p0_2=p0_1;p0_1=p0;p1_2=p1_1;p1_1=p1;p2_2=p2_1;p2_1=p2;p3_2=p3_1;p3_1=p3;p4_2=p4_1;p4_1=p4;p5_2=p5_1;p5_1=p5;p6_2=p6_1;p6_1=p6;c_2=c_1;c_1=c;b_2=b_1;b_1=b;endE(iii)=sum(abs(e));endfigure(1);plot(outputn,'r')hold onplot(yn,'b')hold onplot(outputn-yn,'g');legend('实际输出','预测输出','误差','fontsize',12)title('训练数据预测','fontsize',12)xlabel('样本序号','fontsize',12)ylabel('水质等级','fontsize',12)%% 网络预测%数据归一化inputn_test=mapminmax('apply',input_test,inputps);[n,m]=size(inputn_test)for k=1:mx=inputn_test(:,k);%计算输出中间层for i=1:Ifor j=1:Mu(i,j)=exp(-(x(i)-c(j,i))^2/b(j,i));endendfor i=1:Mw(i)=u(1,i)*u(2,i)*u(3,i)*u(4,i)*u(5,i)*u(6,i);endaddw=0;for i=1:Maddw=addw+w(i);endfor i=1:Myi(i)=p0_1(i)+p1_1(i)*x(1)+p2_1(i)*x(2)+p3_1(i)*x(3)+p4_1(i)*x(4)+p5_1(i)*x(5)+p6_1(i)*x(6);endaddyw=0;for i=1:Maddyw=addyw+yi(i)*w(i);end%计算输出yc(k)=addyw/addw;end%预测结果反归一化test_simu=mapminmax('reverse',yc,outputps);%作图figure(2)plot(output_test,'r')hold onplot(test_simu,'b')hold onplot(test_simu-output_test,'g')legend('实际输出','预测输出','误差','fontsize',12)title('测试数据预测','fontsize',12)xlabel('样本序号','fontsize',12)ylabel('水质等级','fontsize',12)%% 嘉陵江实际水质预测load data2 hgsc gjhy dxg%-----------------------------------红工水厂-----------------------------------zssz=hgsc;%数据归一化inputn_test =mapminmax('apply',zssz,inputps);[n,m]=size(zssz);for k=1:1:mx=inputn_test(:,k);%计算输出中间层for i=1:Ifor j=1:Mu(i,j)=exp(-(x(i)-c(j,i))^2/b(j,i));endendfor i=1:Mw(i)=u(1,i)*u(2,i)*u(3,i)*u(4,i)*u(5,i)*u(6,i);endaddw=0;for i=1:Maddw=addw+w(i);endfor i=1:Myi(i)=p0_1(i)+p1_1(i)*x(1)+p2_1(i)*x(2)+p3_1(i)*x(3)+p4_1(i)*x(4)+p5_1(i)*x(5)+p6_1(i)*x(6);endaddyw=0;for i=1:Maddyw=addyw+yi(i)*w(i);end%计算输出szzb(k)=addyw/addw;endszzbz1=mapminmax('reverse',szzb,outputps);for i=1:mif szzbz1(i)<=1.5szpj1(i)=1;elseif szzbz1(i)>1.5&&szzbz1(i)<=2.5szpj1(i)=2;elseif szzbz1(i)>2.5&&szzbz1(i)<=3.5szpj1(i)=3;elseif szzbz1(i)>3.5&&szzbz1(i)<=4.5szpj1(i)=4;elseszpj1(i)=5;figure(3)plot(szzbz1,'o-r')hold onplot(szzbz2,'*-g')hold onplot(szzbz3,'*:b')xlabel('时间','fontsize',12)ylabel('预测水质','fontsize',12)legend('红工水厂','高家花园水厂','大溪沟水厂','fontsize',12)
3 仿真结果


4 参考文献
[1]朱敏, 李悦, 孔范龙,等. 基于MATLAB实现模糊神经网络模型在企业水环境中的应用[J]. 绿色科技, 2012.
博主简介:擅长智能优化算法、神经网络预测、信号处理、元胞自动机、图像处理、路径规划、无人机等多种领域的Matlab仿真,相关matlab代码问题可私信交流。
部分理论引用网络文献,若有侵权联系博主删除。
边栏推荐
- AppData文件夹下Local,Locallow和Roaming
- Laravel9 installation locale
- Is the largest layoff and salary cut on the internet coming?
- Mysql性能优化(5):主从同步原理与实现
- Stc89c52/90c516rd/89c516rd ADC0832 ADC driver code
- 【作业】2022.5.24 MySQL 查操作
- [frequently asked questions] modularization of browser environment and node environment
- [qt] qmap usage details
- C # [advanced part] C # multithreading
- Redis中的SDS理解
猜你喜欢

共124篇!墨天轮“高可用架构”干货文档分享(含Oracle、MySQL、PG)

【笔记】2022.5.27 通过pycharm操作MySQL

Redis中的Hash设计和节省内存数据结构设计

QT中foreach的使用

Number of students from junior college to Senior College (4)

How to view Tencent's 2022 school recruitment salary, the total contract of cabbage is 40W?

Laravel9 installation locale

Laravel9 local installation

如何通过进程启动来分析和解决EasyCVR内核端口报错问题?
![[punch in - Blue Bridge Cup] day 3 --- slice in reverse order list[: -1]](/img/c2/13693dcb51aab565957b6c5e686b7c.jpg)
[punch in - Blue Bridge Cup] day 3 --- slice in reverse order list[: -1]
随机推荐
Redis is used in Windows system
If you can tell whether the external stock index futures trading platform I am trading is formal and safe?
ReSharper 7. Can X be used with vs2013 preview? [off] - can resharper 7 x be used with VS2013 preview? [closed]
Redis中的Hash设计和节省内存数据结构设计
C [advanced part] C generic [need to be further supplemented: generic interfaces and instances of generic events]
你清楚AI、数据库与计算机体系
[0x0] 校长留的开放问题作业
[summary of skimming questions] database questions are summarized by knowledge points (continuous update / simple and medium questions have been completed)
Redis中的SDS理解
Mysql性能优化(5):主从同步原理与实现
【作业】2022.5.28 将CSV写入数据库
Hisense A7 ink screen mobile phone cannot be started
[punch in - Blue Bridge Cup] day 4--------- split ('') cannot be used. There is a space after the last number of test cases. Split ()
124 articles in total! Motianlun "high availability architecture" dry goods document sharing (including Oracle, mysql, PG)
【作业】2022.5.24 MySQL 查操作
LitJson解析 生成json文件 读取json文件中的字典
Simple theoretical derivation of SVM (notes)
[note] on May 27, 2022, MySQL is operated through pychart
Hash design and memory saving data structure design in redis
Node-RED系列(二八):基于OPC UA节点与西门子PLC进行通讯