《Matlab神经网络30个案例分析》基于模糊神经网络的水质评价
- 格式:pdf
- 大小:95.52 KB
- 文档页数:7
基于模糊神经网络的海水水质评价宗勇军摘要:为了能够客观地对海水水质进行综合评价,利用遥感图像获取的实时与大范围优势,基于卷积神经网络的沿海水质综合评价方法。
通过多层卷积与池化操作,降低因图像平移、缩放、倾斜等变换引起的误差,提高水质评价精度。
实验结果表明,该方法可较准确地评价沿海水质,具有一定的实用价值。
关键词:沿海水质;水质评价;神经网络随着沿海养殖、工业、运输和旅游等行业的迅速发展,近岸海域所承受的资源与环境压力也日益严重,自净速度往往赶不上生产、生活排污速度,从而导致沿海区域水质下降和生物资源减少等海洋生态环境问题。
目前,沿海水质评价数据采集手段已多样化,主要包括卫星遥感、船舶、航空、浮标和台站等方式,而基于遥感图像的水质评价因具有快速、低成本、即时同步性好等优势,已成为当前沿海水质监测与评价的主流方式,可实时快速获得大面积区域沿海水质信息。
卫星遥感的原理是利用卫星重现观测目标电磁辐射特性的空间分布状况,包含观测目标的光谱、时空等特征,并通过分析、推理与判断遥感影像中的目标特征信息来实现观测目标识别。
一、沿海水质评价技术总体框架沿海水质评价技术框架如图1 所示,在水质评价前,需对卷积神经网络进行样本训练。
训练集由沿海水质评价知识集、沿海卫星遥感图像数据和实测的沿海水质数据组成。
其中以卫星遥感图像数据和沿海水质评价知识集为输入样本,以实测的沿海水质数据为目标样本。
在沿海水质评价过程中,将卫星观测的遥感图像数据和水质评价知识数据作为输入数据集,利用训练好的卷积神经网络进行分类识别,最终实现沿海水质的评价与分类。
根据标准海水水质标准,海洋水质分为Ⅰ类、Ⅱ类、Ⅲ类和Ⅳ类[1],对于劣于第Ⅳ类的水质,根据[1]将其分为劣Ⅳ类。
因此在训练及识别过程中,以上述级别的分类标准作为沿海水质评价标准指标,实现沿海水质的分类处理。
二、卷积神经网络的沿海水质评价技术1、沿海水质遥感图像校正。
由于受到遥感器自身特性、大气折射、地球自转和成像方式等因素的影响,卫星遥感采集的影像存在一定的数据失真与几何畸变现象,这必然影响后期影像处理质量和应用效果。
基于T-S模糊神经网络评价汉江干流汉中段水质高凯;贾伟【期刊名称】《微型电脑应用》【年(卷),期】2016(32)2【摘要】为准确客观地评价汉江干流汉中段水环境质量状况,利用T-S模糊神经网络模型,对汉江干流汉中段监测点,连续5年的水质监测状况数据进行了分析评价.结果表明,在选取的6个水质监测指标数据下,汉江干流汉中段水质相对较好,但流经城镇段的水质存在恶化的趋势,需要采取措施进行有效的预防保护.提出的T-S模糊神经网络应用于水环境质量评价方法简便可靠,预测精度高,可以在水质评价中进行推广.%In order to evaluate the water environmental quality status accurately and objectively in Hanzhong stretch of Hanjiang mainstream, this paper uses T-S fuzzy neural network model to do analysis and evaluation to the water quality monitoring data got in the monitoring points of Hanzhong stretch of Hanjiang mainstream for five years in a row. The results shows that according to the six selected indicators of water quality monitoring data, the water quality of Hanzhong stretch of Hanjiang mainstream is relatively good, but the water quality of stretch through the town tends to be deteriorated, to which measures should be taken to protect. In this paper, TS fuzzy neural network used in water environmental quality assessment method is simple, reliable, high prediction accuracy, which can promote water quality evaluation.【总页数】3页(P51-53)【作者】高凯;贾伟【作者单位】陕西理工学院,数学计算机科学学院,汉中,723001;陕西理工学院,数学计算机科学学院,汉中,723001【正文语种】中文【中图分类】TP399【相关文献】1.基于T-S模糊神经网络模型的钦州市主要河流水质评价 [J], 莫崇勋;阮俞理;莫桂燕;朱新荣;孙桂凯2.基于T-S模糊神经网络模型的汉中段汉江流域水质评价与分析 [J], 拓守恒;何红;李鹏飞3.基于T-S模糊神经网络的南京市水质评价方法研究 [J], 李磊;冯鑫4.基于T-S模糊神经网络的水质评价方法及其在四水流域的应用 [J], 钟艳红; 苗东昊; 赵明汉; 邵东国; 朱诗好5.基于T-S模糊神经网络的水质评价方法及其在四水流域的应用 [J], 钟艳红; 苗东昊; 赵明汉; 邵东国; 朱诗好因版权原因,仅展示原文概要,查看原文内容请购买。
MATLAB神经⽹络⼯具箱在河流⽔质预测中的应⽤五⾢⼤学学报(⾃然科学版) JOURNAL OF WUYI UNIVERSITY ( Natural Science Edition) 第23卷第1期2009年 2⽉ V ol.23 No.1Feb. 2009⽂章编号:1006-7302(2009)01-0069-05MATLAB 神经⽹络⼯具箱在河流⽔质预测中的应⽤陈龙1,张新政1,袁从贵1,宋华兵1,2(1. ⼴东⼯业⼤学⾃动化学院,⼴东⼴州 510009;2. 肇庆学院数学系,⼴东肇庆 526061)摘要:根据计算河流⽔质的数学模型,使⽤MATLAB 神经⽹络⼯具箱建⽴了河流⽔质预测系统的神经⽹络,并以长期监测的珠江流域东江⽔质状况为例,对建⽴的⽹络系统进⾏了仿真,结果表明了⽅法的有效性.关键词:神经⽹络;⽔质预测;MATLAB中图分类号:N945.12;TP275 ⽂献标识码:AApplication of MATLAB Neural Network’ Tool-box in River Water Quality PredictionCHEN Long 1, ZHANG Xin-zheng 1, YUAN Cong-gui 1, SONG Hua-bing 1,2(1. Guangdong University of Technology, Guangzhou 510090, China;2. Mathematics Department of Zhaoqing University, Zhaoqing 526061, China)Abstract: A neural network for predicting river water quality is built based on amathematical model for determining river water quality by using the GUI in the MATLABneural networks ’ tool box. Simulation of the network using the data derived fromlong-term monitoring of the water quality of the East River in the Peal River Systemshows the method is effective.Key words: neural networks; water quality prediction; MATLAB城市河流是⼀个开放的系统,其⽔质易受到⾃然和⼈为因素的影响. 从2007年8⽉份全国⽔资源质量概况总体来看,我国⽔体污染以耗氧有机物为主,且污染⼗分严重. 因此对河流⽔质的预测、控制变得极为重要.1 ⽔质预测和神经⽹络1.1 ⽔质预测⽔质预测是指在⼀定范围内,对⼀定时期的⽔质状况进⾏分析,对其未来发展状况进⾏预测,收稿⽇期:2008-09-09基⾦项⽬:国家⾃然科学基⾦资助项⽬(60574052),⼴东省科技计划资助项⽬(2005B33301008),⼴东省⾃然科学基⾦资助项⽬(05001820)作者简介:陈龙(1983— ),男,江西赣州⼈,硕⼠研究⽣,研究⽅向:⼤系统的优化、控制及管理,E-mail :chenlong_20000@/doc/f0061751ad02de80d4d8404b.html ;张新政,教授,博⼠⽣导师,通信作者,研究⽅向:复杂⼤系统的建模与控制、变结构控制,E-mail:lucy@/doc/f0061751ad02de80d4d8404b.html .五⾢⼤学学报(⾃然科学版) 2009年 70 确定⽔质的状况及其变化的趋势、速度以及达到某⼀变化限度的时间等. 对⽔质进⾏预测可应⽤于防范各类突发事件,包括低概率和⾼风险的化学物质、微⽣物及放射性物质污染事件,污染物的有意排放及⼈为投加等,为政府部门提供决策⽀持,最⼤限度地降低突发事件的影响. ⽔质预测的常见⽅法有线性回归⽅法[1]、时间序列⽅法[2]、灰⾊系统⽅法[3]、神经⽹络⽅法等.1.2 神经⽹络⼈⼯神经⽹络经过多年的发展,在解决各种过程监控的技术问题中取得了很⼤的成功,例如语⾳识别、实时语⾔翻译、矿藏勘探、脑电图和⼼电图的分析,国防⽅⾯的武器操纵、⽬标的跟踪和识别,⼯业⽅⾯的过程控制、智能故障诊断等[4]. 神经⽹络就⽬前的应⽤来说,主要偏重于特征的提取、过程的控制和状态的预测.针对复杂、模糊、⾼度⾮线性河流⽔质的预测、预报问题,如果⽤常规⽅法来处理,要么是⽆从解决,要么是⾮常复杂且耗资巨⼤[5]. ⽽神经⽹络在对信息的加⼯处理过程中均表现出很强的容错能⼒,其在计算处理信息的过程中所表现出的容错性来⾃于其⽹络⾃⾝的结构特点. 神经⽹络的主要优势就在于它的学习性和⾃动调整性,所以⾮常适合处理⾮线性问题. 因⽽将其应⽤于河流⽔质监测预测系统中,前景⾮常⼴阔. 宋华兵等[6]将神经⽹络内嵌到⽔质模型中,构成⼀个具有学习功能的不确定性⽔质模型. 陈建秋等[7]利⽤时滞⼤系统理论分析流域⽔污染的控制,将⼩波神经⽹络应⽤于⽔质预测中.2 计算河流⽔质的数学模型河流⽔质预测依赖于计算河流⽔质的数学模型,QUAL -II 是⼀个具有多种⽤途的河流⽔质模型,它能按照使⽤者的要求,以各种组合⽅式描述各⽔质参数[8]. 模型的基本⽅程:AS x QC x x C EA tAC +=??)()()(,(1)式中C 为河段中某种污染物的浓度,t 为时间,x 为河⽔的流动距离,E 为河流纵向离散系数,A 为断⾯,Q 为流量.QUAL -II 模型假设流量处于稳定状态,即0=??t Q ,0=??t A ,于是式(1)可变成以下形式: ext int )()(S S xA QC x A x C EA t C ++=??,(2)式中int S 为⽔质变量C 的内部源和漏,ext S 为外部源和漏. 当源漏项∑i S 仅为反应衰减项C K 1时,则式(2)可变为:1()()=?+???C EA C QC x K C t A x A x. (3)对于均匀河段,断⾯A 为常量,u 为河段⽔流的平均速度,将uA Q =,=x ut 代⼊式(3)化简可得⽔质模型⽅程:21222??=+??C E C K C t u t . (4)第23卷第1期 71陈龙等:MATLAB 神经⽹络⼯具箱在河流⽔质预测中的应⽤3 MATLAB神经⽹络⼯具箱3.1 MATLAB 神经⽹络⼯具箱的GUI(图形⽤户界⾯)⼯具现有的⽤MATLAB 预测河流⽔质的模型,GUI 的所有功能绝⼤多数都是通过代码编程来实现的,它程序简洁,但不直观;⽽使⽤MATLAB 神经⽹络⼯具箱的GUI ⼯具建⽴⽹络并对⽹络进⾏初始化、训练、仿真和应⽤等各种操作⾮常⽅便,界⾯友好直观,只要运⽤少量神经⽹络的命令函数即可. 神经⽹络⼯具箱的GUI ⼯具主要包括:1)神经⽹络GUI ⼯具主窗⼝;2)神经⽹络的建⽴窗⼝;3)⽹络训练对话框;4)⾃适应参数设置对话框;5)权值显⽰窗⼝. 通过神经⽹络⼯具箱的GUI ⼯具按钮就能很⽅便地打开所建⽴的神经⽹络的结构图进⾏察看,也可以看到⼀个训练过程的偏差曲线变化图.3.2 神经⽹络⼯具箱解决问题的⼀般步骤1)对待解决的问题进⾏分析,根据各种⽹络的特点选⽤合适的⽹络模型;2)建⽴⽹络;3)对⽹络初始化;4)对⽹络进⾏训练;5)对⽹络进⾏仿真检验;6)应⽤⽹络解决问题.4 系统的预测仿真经过长期对珠江流域东江河流⽔质状况的研究,我们获得了⼤量的河流⽔质数据,这⾥采⽤⽔质参数耗氧量(mg/L )30 d 的数据进⾏研究.4.1 使⽤神经⽹络GUI ⼯具建⽴神经⽹络的输⼊样本和⽬标样本1)在MATLAB 命令窗⼝输⼊nntool ,打开图形⽤户界⾯⼯具主窗⼝,如图1所⽰.2)单击New Data 按钮,打开数据⽣成对话框. 建⽴输⼊样本P ,数据的输⼊和设置如图2所⽰,单击Create 按钮关闭对话框.3)依照上⼀步,输⼊⽬标样本T ,数据类型选Targets. 回到GUI ⼯具的主窗⼝,单击Export 按钮弹出导出对话框,选中变量P 和T ,然后单击Export 按钮,把变量P 和T 导出到⼯作区. 这为仿真⽂件从⼯作空间调⽤导⼊数据做好了准备.图1 GUI ⼯具主窗⼝图2 数据⽣成对话框五⾢⼤学学报(⾃然科学版) 2009年72 4.2 建⽴仿真模型⽂件进⾏预测运⾏MATLAB 软件中的Simulink 仿真环境,在神经⽹络模块库中调⽤神经⽹络预测控制模块NN Predictive Controller ,⽤模块封装技术建⽴河流⽔质数学⽅程模块,连接信号源模块和⽰波器模块后就建⽴了河流⽔质预测仿真⽂件predwq.mdl ,如图3,其中From Workspace 模块中是⽬标样本T 的数据,可以直接从⼯作区导⼊.双击神经⽹络预测控制模块NN Predictive Controller ,弹出如图4的窗⼝,此窗⼝⽤于设计模型预测控制器,输⼊控制器变量空间2N 和u N 、权值参数ρ和控制最优化参数α的值. 然后点击Plant Identification 按钮,打开系统辨识窗⼝,从⼯作区导⼊输⼊样本P ,设置好其它参数后训练⽹络,单击OK 按钮,将训练好的神经⽹络模型导⼊到神经⽹络预测控制模块中,在NN Predictive Controller 窗⼝中单击OK 按钮,将控制器参数导⼊到NN Predictive Controller 模块中.系统模块System Model 是⽤模块封装技术封装的河流⽔质微分⽅程式(4)的仿真模块,如图5所⽰.在predwq Simulink 主窗⼝,仿真时间输⼊100,再单击Start simulation 命令按钮开始仿真. 仿真结束后,双击⽰波器模块就可以查看仿真结果,如图6所⽰. 对仿真结果和⽬标样本的值进⾏⽐较,根据它们的差值绘出预测误差变化曲线,如图7所⽰.图3 predwq.mdl 仿真⽂件图4 神经⽹络预测控制模块窗⼝图5 河流⽔质微分⽅程仿真模块图6 ⽬标和预测结果图陈龙等:MATLAB神经⽹络⼯具箱在河流⽔质预测中的应⽤第23卷第1期73 Array 5 结果与讨论⽐较图6、图7知,本⽂建⽴的⽹络系统对⽔质参数耗氧量的预测图像和⽬标样本基本⼀致. 把仿真预测结果数据和实际⽬标样本数据进⾏⽐较,正、负最⼤误差分别为0.11和-0.06,最⼩误差为0,虽然还有偏差,但误差是在满意的范围之内. 因此,把河流⽔质的数学模型⽤MATLAB神经⽹络进⾏仿真预测,具有较⾼的精度,为河流⽔质预测提供了⽅便的⽅法.图7 预测误差的曲线变化参考⽂献:[1] 宛筝,李晔,汪晓露,等.多元线性回归与灰⾊联合模型在湖泊⽔质预测中的应⽤[J].江苏环境科技,2006,19(2): 59-61.[2] 吴涛,颜辉武,唐桂刚.三峡库区⽔质数据时间序列分析预测研究[J].武汉⼤学学报:信息科学版,2006,31(6): 500-507.[3] 焦瑞峰,吴昊,师洋.基于灰⾊关联分析的蒙特卡罗法建⽴⽔库出库⽔质预测模型[J].环境⼯程,2006,24(4): 63-65.[4] 张铮,杨⽂平. MATLAB程序设计与实例应⽤[M]. 北京:中国铁道出版社,2003.[5] 范⽂飙,陈宇. ⽔源⽔质预警系统研究[J]. ⿊龙江科技信息,2007, 10: 43.[6] 宋华兵,张新政. 内嵌神经⽹络的不确定⽔质模型研究[J],⽔资源与⽔⼯程学报,2008,19(1): 12-14.[7] 陈建秋,张新政. 基于⼩波神经⽹络的⽔质预测应⽤研究[C]//中国控制与决策学术年会论⽂集,天津:[出版者不详],2006: 723-725.[8] 雒⽂⽣,宋星原. ⽔环境分析与预测[M].武汉:武汉⼤学出版社,2004: 201-202.[责任编辑:孙建平]。
MATLAB 智能算法30个案例分析第1 章1、案例背景遗传算法(Genetic Algorithm,GA)是一种进化算法,其基本原理是仿效生物界中的“物竞天择、适者生存”的演化法则。
遗传算法的做法是把问题参数编码为染色体,再利用迭代的方式进行选择、交叉以及变异等运算来交换种群中染色体的信息,最终生成符合优化目标的染色体。
在遗传算法中,染色体对应的是数据或数组,通常是由一维的串结构数据来表示,串上各个位置对应基因的取值。
基因组成的串就是染色体,或者叫基因型个体( Individuals) 。
一定数量的个体组成了群体(Population)。
群体中个体的数目称为群体大小(Population Size),也叫群体规模。
而各个个体对环境的适应程度叫做适应度( Fitness) 。
2、案例目录:1.1 理论基础1.1.1 遗传算法概述1. 编码2. 初始群体的生成3. 适应度评估4. 选择5. 交叉6. 变异1.1.2 设菲尔德遗传算法工具箱1. 工具箱简介2. 工具箱添加1.2 案例背景1.2.1 问题描述1. 简单一元函数优化2. 多元函数优化1.2.2 解决思路及步骤1.3 MATLAB程序实现1.3.1 工具箱结构1.3.2 遗传算法中常用函数1. 创建种群函数—crtbp2. 适应度计算函数—ranking3. 选择函数—select4. 交叉算子函数—recombin5. 变异算子函数—mut6. 选择函数—reins7. 实用函数—bs2rv8. 实用函数—rep1.3.3 遗传算法工具箱应用举例1. 简单一元函数优化2. 多元函数优化1.4 延伸阅读1.5 参考文献3、主程序:1. 简单一元函数优化:clcclear allclose all%% 画出函数图figure(1);hold on;lb=1;ub=2; %函数自变量范围【1,2】ezplot('sin(10*pi*X)/X',[lb,ub]); %画出函数曲线xlabel('自变量/X')ylabel('函数值/Y')%% 定义遗传算法参数NIND=40; %个体数目MAXGEN=20; %最大遗传代数PRECI=20; %变量的二进制位数GGAP=0.95; %代沟px=0.7; %交叉概率pm=0.01; %变异概率trace=zeros(2,MAXGEN); %寻优结果的初始值FieldD=[PRECI;lb;ub;1;0;1;1]; %区域描述器Chrom=crtbp(NIND,PRECI); %初始种群%% 优化gen=0; %代计数器X=bs2rv(Chrom,FieldD); %计算初始种群的十进制转换ObjV=sin(10*pi*X)./X; %计算目标函数值while gen<MAXGENFitnV=ranking(ObjV); %分配适应度值SelCh=select('sus',Chrom,FitnV,GGAP); %选择SelCh=recombin('xovsp',SelCh,px); %重组SelCh=mut(SelCh,pm); %变异X=bs2rv(SelCh,FieldD); %子代个体的十进制转换ObjVSel=sin(10*pi*X)./X; %计算子代的目标函数值[Chrom,ObjV]=reins(Chrom,SelCh,1,1,ObjV,ObjVSel); %重插入子代到父代,得到新种群X=bs2rv(Chrom,FieldD);gen=gen+1; %代计数器增加%获取每代的最优解及其序号,Y为最优解,I为个体的序号[Y,I]=min(ObjV);trace(1,gen)=X(I); %记下每代的最优值trace(2,gen)=Y; %记下每代的最优值endplot(trace(1,:),trace(2,:),'bo'); %画出每代的最优点grid on;plot(X,ObjV,'b*'); %画出最后一代的种群hold off%% 画进化图figure(2);plot(1:MAXGEN,trace(2,:));grid onxlabel('遗传代数')ylabel('解的变化')title('进化过程')bestY=trace(2,end);bestX=trace(1,end);fprintf(['最优解:\nX=',num2str(bestX),'\nY=',num2str(bestY),'\n'])2. 多元函数优化clcclear allclose all%% 画出函数图figure(1);lbx=-2;ubx=2; %函数自变量x范围【-2,2】lby=-2;uby=2; %函数自变量y范围【-2,2】ezmesh('y*sin(2*pi*x)+x*cos(2*pi*y)',[lbx,ubx,lby,uby],50); %画出函数曲线hold on;%% 定义遗传算法参数NIND=40; %个体数目MAXGEN=50; %最大遗传代数PRECI=20; %变量的二进制位数GGAP=0.95; %代沟px=0.7; %交叉概率pm=0.01; %变异概率trace=zeros(3,MAXGEN); %寻优结果的初始值FieldD=[PRECI PRECI;lbx lby;ubx uby;1 1;0 0;1 1;1 1]; %区域描述器Chrom=crtbp(NIND,PRECI*2); %初始种群%% 优化gen=0; %代计数器XY=bs2rv(Chrom,FieldD); %计算初始种群的十进制转换X=XY(:,1);Y=XY(:,2);ObjV=Y.*sin(2*pi*X)+X.*cos(2*pi*Y); %计算目标函数值while gen<MAXGENFitnV=ranking(-ObjV); %分配适应度值SelCh=select('sus',Chrom,FitnV,GGAP); %选择SelCh=recombin('xovsp',SelCh,px); %重组SelCh=mut(SelCh,pm); %变异XY=bs2rv(SelCh,FieldD); %子代个体的十进制转换X=XY(:,1);Y=XY(:,2);ObjVSel=Y.*sin(2*pi*X)+X.*cos(2*pi*Y); %计算子代的目标函数值[Chrom,ObjV]=reins(Chrom,SelCh,1,1,ObjV,ObjVSel); %重插入子代到父代,得到新种群XY=bs2rv(Chrom,FieldD);gen=gen+1; %代计数器增加%获取每代的最优解及其序号,Y为最优解,I为个体的序号[Y,I]=max(ObjV);trace(1:2,gen)=XY(I,:); %记下每代的最优值trace(3,gen)=Y; %记下每代的最优值endplot3(trace(1,:),trace(2,:),trace(3,:),'bo'); %画出每代的最优点grid on;plot3(XY(:,1),XY(:,2),ObjV,'bo'); %画出最后一代的种群hold off%% 画进化图figure(2);plot(1:MAXGEN,trace(3,:));grid onxlabel('遗传代数')ylabel('解的变化')title('进化过程')bestZ=trace(3,end);bestX=trace(1,end);bestY=trace(2,end);fprintf(['最优解:\nX=',num2str(bestX),'\nY=',num2str(bestY),'\nZ=',num2str(bestZ), '\n']) 第2 章基于遗传算法和非线性规划的函数寻优算法1.1案例背景1.1.1 非线性规划方法非线性规划是20世纪50年代才开始形成的一门新兴学科。
模糊神经网络的预测算法——水质评价一、案例背景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模糊神经网络分为输入层、模糊化层、模糊规则计划层和输出层四层。
MATLAB 智能算法30个案例分析(终极版)1 基于遗传算法的TSP算法(王辉)2 基于遗传算法和非线性规划的函数寻优算法(史峰)3 基于遗传算法的BP神经网络优化算法(王辉)4 设菲尔德大学的MATLAB遗传算法工具箱(王辉)5 基于遗传算法的LQR控制优化算法(胡斐)6 遗传算法工具箱详解及应用(胡斐)7 多种群遗传算法的函数优化算法(王辉)8 基于量子遗传算法的函数寻优算法(王辉)9 多目标Pareto最优解搜索算法(胡斐)10 基于多目标Pareto的二维背包搜索算法(史峰)11 基于免疫算法的柔性车间调度算法(史峰)12 基于免疫算法的运输中心规划算法(史峰)13 基于粒子群算法的函数寻优算法(史峰)14 基于粒子群算法的PID控制优化算法(史峰)15 基于混合粒子群算法的TSP寻优算法(史峰)16 基于动态粒子群算法的动态环境寻优算法(史峰)17 粒子群算法工具箱(史峰)18 基于鱼群算法的函数寻优算法(王辉)19 基于模拟退火算法的TSP算法(王辉)20 基于遗传模拟退火算法的聚类算法(王辉)21 基于模拟退火算法的HEV能量管理策略参数优化(胡斐)22 蚁群算法的优化计算——旅行商问题(TSP)优化(郁磊)23 基于蚁群算法的二维路径规划算法(史峰)24 基于蚁群算法的三维路径规划算法(史峰)25 有导师学习神经网络的回归拟合——基于近红外光谱的汽油辛烷值预测(郁磊)26 有导师学习神经网络的分类——鸢尾花种类识别(郁磊)27 无导师学习神经网络的分类——矿井突水水源判别(郁磊)28 支持向量机的分类——基于乳腺组织电阻抗特性的乳腺癌诊断(郁磊)29 支持向量机的回归拟合——混凝土抗压强度预测(郁磊)30 极限学习机的回归拟合及分类——对比实验研究(郁磊)智能算法是我们在学习中经常遇到的算法,主要包括遗传算法,免疫算法,粒子群算法,神经网络等,智能算法对于很多人来说,既爱又恨,爱是因为熟练的掌握几种智能算法,能够很方便的解决我们的论坛问题,恨是因为智能算法感觉比较“玄乎”,很难理解,更难用它来解决问题。
%输 层结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)。