第一范文网 - 专业文章范例文档资料分享平台

2011年电工杯数学建模全国一等奖论文

来源:用户分享 时间:2025/6/29 10:44:33 本文由loading 分享 下载这篇文档手机版
说明:文章内容仅供预览,部分内容可能不全,需要完整文档或者需要复制内容,请下载word后使用。下载word有问题请添加微信号:xxxxxxx或QQ:xxxxxx 处理(尽可能给您提供完整文档),感谢您的支持与谅解。

output_train=input_test; output_test=output_test';

[inputn,inputps]=mapminmax(input_train); [outputn,outputps]=mapminmax(output_train);

net=newff(inputn,outputn,hiddennum);

maxgen=10; sizepop=10; pcross=[0.3]; pmutation=[0.1];

numsum=inputnum*hiddennum+hiddennum+hiddennum*outputnum+outputnum;

lenchrom=ones(1,numsum);

bound=[-3*ones(numsum,1) 3*ones(numsum,1)];

--------------------------------------------------

individuals=struct('fitness',zeros(1,sizepop), 'chrom',[]); avgfitness=[]; bestfitness=[]; bestchrom=[]; for i=1:sizepop

individuals.chrom(i,:)=Code(lenchrom,bound); x=individuals.chrom(i,:);

individuals.fitness(i)=fun(x,inputnum,hiddennum,outputnum,net,inputn,outputn);

end

[bestfitnessbestindex]=min(individuals.fitness);

43

bestchrom=individuals.chrom(bestindex,:); avgfitness=sum(individuals.fitness)/sizepop; trace=[avgfitnessbestfitness];

for i=1:maxgen i

individuals=Select(individuals,sizepop); avgfitness=sum(individuals.fitness)/sizepop;

individuals.chrom=Cross(pcross,lenchrom,individuals.chrom,sizepop,bound);

individuals.chrom=Mutation(pmutation,lenchrom,individuals.chrom,sizepop,i,maxgen,bound);

for j=1:sizepop

x=individuals.chrom(j,:);

individuals.fitness(j)=fun(x,inputnum,hiddennum,outputnum,net,inputn,outputn);

end

[newbestfitness,newbestindex]=min(individuals.fitness); [worestfitness,worestindex]=max(individuals.fitness); ifbestfitness>newbestfitness bestfitness=newbestfitness;

bestchrom=individuals.chrom(newbestindex,:); end

individuals.chrom(worestindex,:)=bestchrom; individuals.fitness(worestindex)=bestfitness;

avgfitness=sum(individuals.fitness)/sizepop;

trace=[trace;avgfitnessbestfitness];

44

end figure(1)

[r c]=size(trace);

plot([1:r]',trace(:,2),'b--'); x=bestchrom;

w1=x(1:inputnum*hiddennum);

B1=x(inputnum*hiddennum+1:inputnum*hiddennum+hiddennum); w2=x(inputnum*hiddennum+hiddennum+1:inputnum*hiddennum+hiddennum+hiddennum*outputnum);

B2=x(inputnum*hiddennum+hiddennum+hiddennum*outputnum+1:inputnum*hiddennum+hiddennum+hiddennum*outputnum+outputnum);

net.iw{1,1}=reshape(w1,hiddennum,inputnum); net.lw{2,1}=reshape(w2,outputnum,hiddennum); net.b{1}=reshape(B1,hiddennum,1); net.b{2}=B2;

net.trainParam.epochs=100; net.trainParam.lr=0.1;

[net,per2]=train(net,inputn,outputn);

inputn_test=mapminmax('apply',input_test,inputps); an=sim(net,inputn_test);

test_simu=mapminmax('reverse',an,outputps); error=test_simu-output_test;

45

%适应度函数

function error =

fun(x,inputnum,hiddennum,outputnum,net,inputn,outputn)

w1=x(1:inputnum*hiddennum);

B1=x(inputnum*hiddennum+1:inputnum*hiddennum+hiddennum); w2=x(inputnum*hiddennum+hiddennum+1:inputnum*hiddennum+hiddennum+hiddennum*outputnum);

B2=x(inputnum*hiddennum+hiddennum+hiddennum*outputnum+1:inputnum*hiddennum+hiddennum+hiddennum*outputnum+outputnum);

net=newff(inputn,outputn,hiddennum); net.trainParam.epochs=20; net.trainParam.lr=0.1; net.trainParam.goal=0.00001; net.trainParam.show=100; net.trainParam.showWindow=0;

net.iw{1,1}=reshape(w1,hiddennum,inputnum); net.lw{2,1}=reshape(w2,outputnum,hiddennum); net.b{1}=reshape(B1,hiddennum,1); net.b{2}=B2;

net=train(net,inputn,outputn);

an=sim(net,inputn);

error=sum(abs(an-outputn));

%完成变异操作

46

2011年电工杯数学建模全国一等奖论文.doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印
本文链接:https://www.diyifanwen.net/c50n9a32pac7916095d36_11.html(转载请注明文章来源)
热门推荐
Copyright © 2012-2023 第一范文网 版权所有 免责声明 | 联系我们
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ:xxxxxx 邮箱:xxxxxx@qq.com
渝ICP备2023013149号
Top