基于模糊BP神经网络的水质评价
- 格式:pdf
- 大小:284.18 KB
- 文档页数:5
基于BP神经网络—模糊数学串联模型的科左中旗地下水质量评
价
地下水水质是植物生长发育和影响生态环境的主要因素,是评估地下水环境的核心指标。
内蒙古通辽地区农业灌溉主要依赖于地下水,目前该区正在进行大规模的“节水增粮行动”,此举可能会引起地下水环境的变化。
本文以科左中旗万亩示范田为研究对象,开展地下水环境监测,揭示研究区地下水环境的变化规律,应用构建的BP神经网络—隶属度串联模型对科左中旗地下水环境进行评价,成果将为农田地下水环境有效治理提供基础,对维持当地农业可持续发展具有不可忽视的价值意义。
主要研究成果如下:(1)作物生育期内地下水位降低,地下水埋深波动比较明显。
2016年地下水埋深在生育期内呈“U”型变化;2017年7月份由于降雨密集,水位上涨,地下水埋深在生育期内呈“W”型变化。
(2)地下水水质生育期内变化较大,伴随着地下水埋深的升降、降雨的补给、施肥的进行:7月地下水pH值升高;矿化度、全盐量、氨氮、硝酸盐、硫酸盐、钠离子、镁离子、氯化物和总硬度在6月份和8月份产生极大值,7月份产生极小值,波动较明显;重碳酸盐和总碱度呈现高低起伏的变化,全盐量与矿化度、重碳酸盐与总碱度存在极显著正相关关系。
8月末各离子浓度逐渐下降,生育期前后各离子浓度值相近,当地总体地下水质4月和10月优于其它各月。
(3)构建的BP神经网络一隶属度串联模型经率定检验,与实际监测数据吻合较好,该模型用于科左中旗地区农田地下水质量评价可行。
(4)以地下水Ⅳ类标准为基础,基于BP神经网络一隶属度串联模型评价结果
显示研究区地下水水质总体都位于Ⅳ类水以上,地下水质量情况良好,其中2017年地下水质量优于2016年。
基于模糊神经网络的海水水质评价宗勇军摘要:为了能够客观地对海水水质进行综合评价,利用遥感图像获取的实时与大范围优势,基于卷积神经网络的沿海水质综合评价方法。
通过多层卷积与池化操作,降低因图像平移、缩放、倾斜等变换引起的误差,提高水质评价精度。
实验结果表明,该方法可较准确地评价沿海水质,具有一定的实用价值。
关键词:沿海水质;水质评价;神经网络随着沿海养殖、工业、运输和旅游等行业的迅速发展,近岸海域所承受的资源与环境压力也日益严重,自净速度往往赶不上生产、生活排污速度,从而导致沿海区域水质下降和生物资源减少等海洋生态环境问题。
目前,沿海水质评价数据采集手段已多样化,主要包括卫星遥感、船舶、航空、浮标和台站等方式,而基于遥感图像的水质评价因具有快速、低成本、即时同步性好等优势,已成为当前沿海水质监测与评价的主流方式,可实时快速获得大面积区域沿海水质信息。
卫星遥感的原理是利用卫星重现观测目标电磁辐射特性的空间分布状况,包含观测目标的光谱、时空等特征,并通过分析、推理与判断遥感影像中的目标特征信息来实现观测目标识别。
一、沿海水质评价技术总体框架沿海水质评价技术框架如图1 所示,在水质评价前,需对卷积神经网络进行样本训练。
训练集由沿海水质评价知识集、沿海卫星遥感图像数据和实测的沿海水质数据组成。
其中以卫星遥感图像数据和沿海水质评价知识集为输入样本,以实测的沿海水质数据为目标样本。
在沿海水质评价过程中,将卫星观测的遥感图像数据和水质评价知识数据作为输入数据集,利用训练好的卷积神经网络进行分类识别,最终实现沿海水质的评价与分类。
根据标准海水水质标准,海洋水质分为Ⅰ类、Ⅱ类、Ⅲ类和Ⅳ类[1],对于劣于第Ⅳ类的水质,根据[1]将其分为劣Ⅳ类。
因此在训练及识别过程中,以上述级别的分类标准作为沿海水质评价标准指标,实现沿海水质的分类处理。
二、卷积神经网络的沿海水质评价技术1、沿海水质遥感图像校正。
由于受到遥感器自身特性、大气折射、地球自转和成像方式等因素的影响,卫星遥感采集的影像存在一定的数据失真与几何畸变现象,这必然影响后期影像处理质量和应用效果。
基于模糊BP神经网络的苏南Y湖水质评价作者:孙永泉刘旭陈吉陆幸鹦宋梅来源:《安徽农业科学》2014年第34期摘要以苏南Y湖水环境为研究对象,运用模糊神经网络进行水质评价,根据评价结果进行该湖不同水域的水质比较。
结果表明:该湖水体溶解氧和化学需氧量在5种不同水域具有显著性差异,两者均以中湖、东湖和湖内围网区为最高,上游河流最低;而水体氨氮、总氮和总磷含量在各水域均没有显著性差异。
建立以上述5个水质指标为输入变量、包含3个神经元的隐含层和1个水质类别输出结果所组成的BP人工神经网络,经学习训练后,其可掌握水质类别特征,具备完全正确识别样本的能力。
从BP网络输出结果和模糊BP神经网络计算结果可知,该湖各水域水质处于Ⅳ和Ⅴ类之间,总体来说西湖的水质最好,上游河流次之,其次为湖内围网区和东湖,湖中最差。
相比BP网络输出结果,模糊BP神经网络计算结果可以更简单明了地表示该湖各水域水质接近于某类标准水质的程度。
关键词水质评价;BP人工神经网络;模糊综合评价;模糊BP神经网络中图分类号 S181.3;X825 ;文献标识码 A ;文章编号 0517-6611(2014)34-12253-03Y湖是苏南地区调蓄水量的主要湖泊和市区重要饮用水源,对于该地区的生活饮用、工业用水、农业灌溉和渔业资源保护等均起关键作用。
近年来,随着该地区工农业的快速发展,湖水营养物质富集,导致该湖水体的富营养化水平不断加剧。
因此,Y湖水环境的保护对于保障该地区人民生活质量和经济持续发展具有十分重要的意义。
水质评价是进行水环境保护的前提和基础[1]。
地球上所有水环境系统是一个开放而又难以界定的非线性复杂系统[2]。
采用传统的水质评价方法,往往通过大量的假设简化而偏离真实情况。
模糊BP神经网络是模糊理论同BP神经网络相结合的产物,可实现样本识别、杂讯过滤、特征量记忆存储、学习与联想及模糊信息处理等功能,在复杂系统进行定量化研究方面具有独特优势[3]。
该代码为基于模糊神经网络的水质评价代码清空环境变量参数初始化网络训练网络预测嘉陵江实际水质预测清空环境变量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:maxgeniii;for 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)Warning: Ignoring extra legend entries.网络预测%数据归一化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)n =6m =50Warning: Ignoring extra legend entries.嘉陵江实际水质预测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;endend% %-----------------------------------高家花园-----------------------------------zssz=gjhy;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;endszzbz2=mapminmax('reverse',szzb,outputps);for i=1:mif szzbz2(i)<=1.5szpj2(i)=1;elseif szzbz2(i)>1.5&&szzbz2(i)<=2.5szpj2(i)=2;elseif szzbz2(i)>2.5&&szzbz2(i)<=3.5szpj2(i)=3;elseif szzbz2(i)>3.5&&szzbz2(i)<=4.5szpj2(i)=4;elseszpj2(i)=5;endend% %-----------------------------------大溪沟水厂-----------------------------------zssz=dxg;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;endszzbz3=mapminmax('reverse',szzb,outputps);for i=1:mif szzbz3(i)<=1.5szpj3(i)=1;elseif szzbz3(i)>1.5&&szzbz3(i)<=2.5szpj3(i)=2;elseif szzbz3(i)>2.5&&szzbz3(i)<=3.5szpj3(i)=3;elseif szzbz3(i)>3.5&&szzbz3(i)<=4.5szpj3(i)=4;elseszpj3(i)=5;endendfigure(3)plot(szzbz1,'o-r')hold onplot(szzbz2,'*-g')hold onplot(szzbz3,'*:b')xlabel('时间','fontsize',12)ylabel('预测水质','fontsize',12)legend('红工水厂','高家花园水厂','大溪沟水厂','fontsize',12)web browser Warning: Ignoring extra legend entries.。
基于BP神经网络的水环境承载力评价杨秋林,张淑贞(太原科技大学,山西太原030024)摘要:在充分理解水环境承载力概念的基础上,选取水环境承载力评价指标,确定分级评价标准,引入神经网络理论,构建了3层BP神经网络评价模型,并将其应用于山西省2004年、2010年水环境承载力评价;结果表明,山西省2004年、2010年水环境承载力处于弱承载状态;建立的评价模型结构简单、计算简便,具有很好的适用性。
关键词:水环境承载力;BP神经网络;山西省Evaluation of wter environmental carrying capacity based on BP Neural NetworkYANG Qiu-lin,ZHANG Shu-zhen(Taiyuan University of Science and Technology,Taiyuan030024,China)Abstract:Based on the concept of water environmental carrying capacity and by selecting the evaluation index system of water environmental carrying capacity,establishing grade evaluation standard,and introducing neural network theory,it constructs the three-layers BP neural network evaluation model,and applies it to evaluate water environmental carrying capacity of ShanXi Province in2004,2010.The calculations with the model shows that water environmental carrying capacity of ShanXi Province in2004,2010is still weak.The model built in this paper has the specialties of simple structure and easily calculating,and is also suitable for comprehensive assessment of water environmental carrying capacity.Key words:water environmental carrying capacity;BP neural network;Shanxi Province在动力法院外墙,有三叶地锦覆盖的墙体比没有覆盖的墙体平均降低5.5℃,最高降温幅度达到6.8℃。
式中:E为网络输出误差,P代表第P个样本,j为输出单元数,t jp为单元期望输出,O jp为单元的实际输出,(t jp-O jp)2输出层第j个神经元在模式P作用下的实际输出和期望输出之差的平方。
1.2 BP算法存在的问题BP算法的根本形式为[3]:W(k+1)=W(k)+αD(k)(2)式中:W〔k〕为时刻的权值;α为学习率;〔k〕为k时刻的负梯度。
用三层BP网络可以任意逼近任何连续函数,但是它主要存在如下缺点:(1) 从数学上看,它可归结为一非线性的梯度优化问题,因此不可防止地存在局部极小问题;(2) 学习算法的收敛速度慢,通常需要上千次或更多;(3) 络结构为前向结构,没有反应连接,因此它是一非线性映射系统。
1.3 BP算法的改良〔ABPM算法〕由于BP算法存在以上的缺陷,因而用BP网络训练网络时常常会出现收敛慢、振荡和陷入局部极小等问题。
因此,采用引入动量项的自适应变步长来调整学习率的改良算法〔即ABPM算法〕。
自适应变步长算法和常规BP算法的主要区别在于学习步长λ随误差曲面的变化而进展调整。
由于BP网络的逼近误差曲面的梯度变化是不均匀的,即(k)在不同的位置大小不同。
如果采用固定的步长λ,当λ较小时,在误差曲面较平坦的区域,收敛较慢;当步长λ较大时,又会在峡谷区域引起振荡。
自适应变步长算法正是针对步长的缺陷提出来的。
这种算法是以进化论中的进退法为理论根底的,即连续两次观测训练的误差值,如果误差下降如此增大学习率,误差的反弹在一定的X围内,如此保持步长,误差的反弹超过一定限度如此减小学习率。
学习率的调整可用如下公式进展描述。
W(k+1)=W(k)+α(k)[1-ηD(k)+ηD(k-1)] (3)其中:α(k)=2λα(k-1);λ=sign[D(k)D(k-1)]。
式中:(k)为k时刻的学习率,它是(k-1)时刻学习率的函数。
η是动量因子,用来抑制振荡。
确定好网络结构和训练算法后,就可以利用输入输山样本对网络进展训练,即按照式〔3〕对网络权值进展调整,当达到期望的输出时训练即告完成,否如此继续调整权值。
%输 层结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)Warning: Ignoring extra legend entries.络预测%数 归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)n =6m =50Warning: Ignoring extra legend entries.际 质预测load data2hgsc 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;endend% %----------------------------------- -----------------------------------zssz=gjhy;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;endszzbz2=mapminmax('reverse',szzb,outputps);for i=1:mif szzbz2(i)<=1.5szpj2(i)=1;elseif szzbz2(i)>1.5&&szzbz2(i)<=2.5szpj2(i)=2;elseif szzbz2(i)>2.5&&szzbz2(i)<=3.5szpj2(i)=3;elseif szzbz2(i)>3.5&&szzbz2(i)<=4.5szpj2(i)=4;elseszpj2(i)=5;endend% %----------------------------------- -----------------------------------zssz=dxg;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;endszzbz3=mapminmax('reverse',szzb,outputps);for i=1:mif szzbz3(i)<=1.5szpj3(i)=1;elseif szzbz3(i)>1.5&&szzbz3(i)<=2.5szpj3(i)=2;elseif szzbz3(i)>2.5&&szzbz3(i)<=3.5szpj3(i)=3;elseif szzbz3(i)>3.5&&szzbz3(i)<=4.5szpj3(i)=4;elseszpj3(i)=5;endendfigure(3)plot(szzbz1,'o-r')hold onplot(szzbz2,'*-g')hold onplot(szzbz3,'*:b')xlabel('时 ','fontsize',12)ylabel('预测 质','fontsize',12)legend('红 ',' ',' ','fontsize',12)。
模糊神经网络的预测算法——水质评价一、案例背景1、模糊数学简介模糊数学是用来描述、研究和处理事物所具有的模糊特征的数学,“模糊”是指他的研究对象,而“数学”是指他的研究方法。
模糊数学中最基本的概念是隶属度和模糊隶属度函数.其中,隶属度是指元素μ属于模糊子集f的隶属程度,用μf(u)表示,他是一个在[0,1]之间的数。
μf(u)越接近于0,表示μ属于模糊子集f的程度越小;越接近于1,表示μ属于f的程度越大.模糊隶属度函数是用于定量计算元素隶属度的函数,模糊隶属度函数一般包括三角函数、梯形函数和正态函数。
2、T—S模糊模型T—S模糊系统是一种自适应能力很强的模糊系统,该模型不仅能自动更新,还能不断修正模糊子集的隶属函数。
T-S模糊系统用如下的“if—then”规则形式来定义,在规则为R i的情况下,模糊推理如下:R i:If x i isA1i,x2isA2i,…x k isA k i then y i =p0i+p1i x+…+p k i x k其中,A i j为模糊系统的模糊集;P i j(j=1,2,…,k)为模糊参数;y i为根据模糊规则得到的输出,输出部分(即if部分)是模糊的,输出部分(即then部分)是确定的,该模糊推理表示输出为输入的线性组合.假设对于输入量x=[x1,x2,…,x k],首先根据模糊规则计算各输入变量Xj的隶属度.μA i j=exp(—(x j-c i j)/b i j)j=1,2,…,k;i=1,2,…,n式中,C i j,b i j分别为隶属度函数的中心和宽度;k为输入参数数;n为模糊子集数。
将各隶属度进行模糊计算,采用模糊算子为连乘算子。
ωi=μA1j(x1)*μA2j(x2)*…*μA k j i=1,2,…,n根据模糊计算结果计算模糊型的输出值y i。
Y I=∑n i=1ωi(P i0+P i1x1+…+P i k xk)/ ∑n i=1ωi3、T-S模糊神经网络模型T—S模糊神经网络分为输入层、模糊化层、模糊规则计划层和输出层四层。