matlab30个案例分析案例4代码

matlab30个案例分析案例4代码

ID:6047031

大小:22.35 KB

页数:8页

时间:2018-01-01

matlab30个案例分析案例4代码_第1页
matlab30个案例分析案例4代码_第2页
matlab30个案例分析案例4代码_第3页
matlab30个案例分析案例4代码_第4页
matlab30个案例分析案例4代码_第5页
资源描述:

《matlab30个案例分析案例4代码》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、%%清空环境变量clccleartic%%训练数据预测数据提取及归一化%下载输入输出数据loaddatainputoutput%从1到2000间随机排序k=rand(1,4000);[m,n]=sort(k);%找出训练数据和预测数据input_train=input(n(1:3900),:)';output_train=output(n(1:3900),:)';input_test=input(n(3901:4000),:)';output_test=output(n(3901:4000),:)';%选连样本输入输出数据归一

2、化[inputn,inputps]=mapminmax(input_train);[outputn,outputps]=mapminmax(output_train);%%BP网络训练%%初始化网络结构net=newff(inputn,outputn,5);net.trainParam.epochs=100;net.trainParam.lr=0.1;net.trainParam.goal=0.0000004;%网络训练net=train(net,inputn,outputn);%%BP网络预测%预测数据归一化inputn_t

3、est=mapminmax('apply',input_test,inputps);%网络预测输出an=sim(net,inputn_test);%网络输出反归一化BPoutput=mapminmax('reverse',an,outputps);%%结果分析figure(1)plot(BPoutput,':og')holdonplot(output_test,'-*');legend('预测输出','期望输出','fontsize',12)title('BP网络预测输出','fontsize',12)xlabel('样本',

4、'fontsize',12)ylabel('输出','fontsize',12)print-dtiff-r6004-3%预测误差error=BPoutput-output_test;figure(2)plot(error,'-*')title('神经网络预测误差')figure(3)plot((output_test-BPoutput)./BPoutput,'-*');title('神经网络预测误差百分比')errorsum=sum(abs(error))tocsavedatanetinputpsoutputpsfunctio

5、nret=Code(lenchrom,bound)%本函数将变量编码成染色体,用于随机初始化一个种群%lenchrominput:染色体长度%boundinput:变量的取值范围%retoutput:染色体的编码值flag=0;whileflag==0pick=rand(1,length(lenchrom));ret=bound(:,1)'+(bound(:,2)-bound(:,1))'.*pick;%线性插值,编码结果以实数向量存入ret中flag=test(lenchrom,bound,ret);%检验染色体的可行性en

6、dfunctionret=Cross(pcross,lenchrom,chrom,sizepop,bound)%本函数完成交叉操作%pcorssinput:交叉概率%lenchrominput:染色体的长度%chrominput:染色体群%sizepopinput:种群规模%retoutput:交叉后的染色体fori=1:sizepop%每一轮for循环中,可能会进行一次交叉操作,染色体是随机选择的,交叉位置也是随机选择的,%但该轮for循环中是否进行交叉操作则由交叉概率决定(continue控制)%随机选择两个染色体进行交叉

7、pick=rand(1,2);whileprod(pick)==0pick=rand(1,2);endindex=ceil(pick.*sizepop);%交叉概率决定是否进行交叉pick=rand;whilepick==0pick=rand;endifpick>pcrosscontinue;endflag=0;whileflag==0%随机选择交叉位pick=rand;whilepick==0pick=rand;endpos=ceil(pick.*sum(lenchrom));%随机选择进行交叉的位置,即选择第几个变量进行交

8、叉,注意:两个染色体交叉的位置相同pick=rand;%交叉开始v1=chrom(index(1),pos);v2=chrom(index(2),pos);chrom(index(1),pos)=pick*v2+(1-pick)*v1;chrom(index(2),pos)=

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。