利用MATLAB实现遗传算法和MATLAB神经网络工具箱的使用(10页).doc
《利用MATLAB实现遗传算法和MATLAB神经网络工具箱的使用(10页).doc》由会员分享,可在线阅读,更多相关《利用MATLAB实现遗传算法和MATLAB神经网络工具箱的使用(10页).doc(10页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、-实验一 利用MATLAB实现遗传算法一、实验目的1、熟悉MATLAB语言编程环境2、掌握MATLAB语言命令3、学会利用MATLAB编程实现遗传算法二、实验原理MATLAB是美国Math Works公司出品的商业数学软件,用于算法开发、数据可视化、数据分析以及数值计算的高级技术计算语言和交互式环境,MATLAB可以进行矩阵运算、绘制函数和数据、实现算法、创建用户界面、连接其他编程语言的程序等,主要应用于工程计算、控制设计等领域。通过学习遗传算法原理,使用MATLAB编写程序,实现其求解策略。三、实验内容通过MATLAB编程,利用遗传算法求解 : 求.三、实验要求1、程序设计2、调试3、实验结
2、果4、撰写实验报告实验二 MATLAB神经网络工具箱的使用一、实验目的1、掌握MATLAB语言命令2、提高MATLAB程序设计能力3、学会使用MATLAB神经网络工具箱二、实验原理MATLAB语言是Math Works公司推出的一套高性能计算机编程语言,集数学计算、图形显示、语言设计于一体,其强大的扩展功能为用户提供了广阔的应用空间。它附带有30多个工具箱,神经网络工具箱就是其中之一。利用该工具箱可以方便的构建神经网络的结构模型、设计、训练等,实现神经网络算法。三、实验内容通过MATLAB编程,利用神经网络工具箱预测公路运量 : 公路运量主要包括公路客运量和公路货运量两个方面。据研究,某地区的
3、公路运量主要与该地区的人数、机动车数量和公路面积有关,上表给出了该地区20年的公路运量相关数据。根据有关部门数据,该地区2010和2011年的人数分别为73.39和75.55万人,机动车数量分别为3.9635和4.0975万辆,公路面积分别为0.9880和1.0268万平方千米。请利用BP网络预测该地区2010和2011年的公路客运量和公路货运量。某地区20年公路运量数据年份人口数量/万人机动车数量/万辆公路面积/万平方千米公路客运量/万人公路货运量/万吨199020.550.60.0951261237199122.440.750.1162171379199225.370.850.117730
4、1385199327.130.900.1491451399199429.451.050.20104601663199530.101.350.23113871714199630.961.450.23123531834199734.061.600.32157504322199836.421.700.32183048132199938.091.850.34198368936200039.132.150.362102411099200139.992.200.361949011203200241.932.250.382043310524200344.592.350.492259811115200447.
5、302.500.562510713320200552.892.600.593344216762200655.732.700.593683618673200756.762.850.674054820724200859.172.950.694292720803200960.633.100.794346221804三、实验要求1、程序设计2、调试3、实验结果4、撰写实验报告运用遗传算法求解函数最大值:所有的子程序为M文件%子程序:计算适应度函数,函数名称存储为fitnessfu.mfunctionFitvalue,sumsump=fitnessfun(population);global BitLe
6、ngthglobal boundsbeginglobal boundsendpopsize=size(population,1); for i=1:popsizex=transform2to10(population(i,:); xx=boundsbegin+x*(boundsend-boundsbegin)/(power(boundsend),BitLength)-1);Fitvalue(i)=targetfun(xx); endFitvalue(i)=Fitvalue+230; fsum=sum(Fitvalue);Pperpopulation=Fitvalue/fsum; cumsump
7、(1)=Pperpopulation(1);for i=2:popsizecumsump(i)=cumsumo(i-1)+Pperpopulation(i);endcumsump=cumsump;%子程序:新种群交叉操作,函数名称存储为crossover.mfunction scro=crossover(population,seln,pc)BitLength=size(population,2);pcc=IfCroIfMut(pc); if pcc=1chb=round(rand*(BitLength-2)+1; scro(1,:)=population(seln(1),1:chb),pop
8、ulation(seln(2),chb+1:BitLength); scro(2,:)=population(seln(2),1:chb),population(seln(1),chb+1:BitLength);else scro(1,:)=population(seln(1),:); scro(2,:)=population(seln(2),:); end %子程序:新种群变异操作,函数名称存储为mutation.mfunction snnew=mutation(snew,pmutation);BitLength=size(snew,2);snnew=snew;pmm=IfCroIfMut(
9、pmutation); if pmm=1chb=round(rand*(BitLlength-1)+1; end%子程序:判断遗传运算是否需要进行交叉或变异,函数名称存储为IfCroIfMut.mfunction pcc=IfCroIfMut(mutORcro);test(1:100)=0;1=round(100*mutORcro);test(1:1)=1;n=round(rand*99)+1;pcc=test(n);%子程序:新种群选择操作,函数名称存储为selection.mfunction seln=selection(population,cumsump); for i=1:2 r=r
10、and; prand=cumsump-r; j=1; whlie prand(j)0 j=j+1;endseln(i)=j; end%子程序:将二进制数转换为十进制数,函数名称存储为transform2to10.mfunction x=transform2to10(Population);BitLength=size(Population,2);x=Population(BitLength);for i=1:BitLength-1 x=x+Population(BitLength-i)*power(2,i);end%子程序:对于优化最大值或者极大值函数问题,目标函数可以作为适应度函数,%函数名
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 利用 MATLAB 实现 遗传 算法 神经网络 工具箱 使用 10
限制150内