91av视频/亚洲h视频/操亚洲美女/外国一级黄色毛片 - 国产三级三级三级三级

  • 大小: 6KB
    文件類型: .m
    金幣: 1
    下載: 1 次
    發(fā)布日期: 2022-03-10
  • 語言: Matlab
  • 標(biāo)簽: matlab??pso??bp??

資源簡介

在matlab程序中,可以實(shí)現(xiàn)粒子群算法優(yōu)化bp神經(jīng)網(wǎng)絡(luò)的算法,可用不同數(shù)據(jù)

資源截圖

代碼片段和文件信息

%%?該代碼為基于PSO和BP網(wǎng)絡(luò)的預(yù)測
%
%%?清空環(huán)境
clc
clear

%讀取數(shù)據(jù)
%?load?maydata?input?output
data=xlsread(‘E:\數(shù)據(jù)處理\useful1.xlsx‘‘test1‘‘a(chǎn)2:i701‘);
input=data(:1:8);
output?=data(:8);?

%從1到326間隨機(jī)排序
?k=rand(1700);
[mn]=sort(k);

%節(jié)點(diǎn)個(gè)數(shù)
inputnum=8;
hiddennum=5;
outputnum=1;

%訓(xùn)練數(shù)據(jù)和預(yù)測數(shù)據(jù)
%?input_train=input(1:299:)‘;
%?input_test=input(300:326:)‘;
%?output_train=output(1:299)‘;
%?output_test=output(300:326)‘;

input_train=input(n(1:624):)‘;
output_train=output(n(1:624):)‘;
input_test=input(n(625:700):)‘;
output_test=output(n(625:700):)‘;?
input_test1=input(651:700:)‘;


%選連樣本輸入輸出數(shù)據(jù)歸一化
[inputninputps]=mapminmax(input_train);
[outputnoutputps]=mapminmax(output_train);

%構(gòu)建網(wǎng)絡(luò)
net=newff(inputnoutputnhiddennum);
netBP=newff(inputnoutputnhiddennum);

%?參數(shù)初始化
%粒子群算法中的兩個(gè)參數(shù)
c1?=?1.49445;???%個(gè)體學(xué)習(xí)因子
c2?=?1.49445;???%社會(huì)學(xué)習(xí)因子

maxgen=50;???%?進(jìn)化次數(shù)??
sizepop=10;???%種群規(guī)模

Vmax=1;???%設(shè)置精度(在已知最小值時(shí)候用)
Vmin=-1;
popmax=5;
popmin=-5;

parnum?=?inputnum?*?hiddennum?+?hiddennum?*?outputnum?+?hiddennum?+?outputnum;?%51
for?i=1:sizepop?????????%初始化種群個(gè)數(shù)
????pop(i:)=5*rands(1parnum);
????V(i:)=rands(1parnum);
????fitness(i)=fun1(pop(i:)inputnumhiddennumoutputnumnetinputnoutputn);
end


%?個(gè)體極值和群體極值
[bestfitness?bestindex]=min(fitness);
zbest=pop(bestindex:);???%全局最佳
gbest=pop;????%個(gè)體最佳
fitnessgbest=fitness;???%個(gè)體最佳適應(yīng)度值
fitnesszbest=bestfitness;???%全局最佳適應(yīng)度值

%%?迭代尋優(yōu)
for?i=1:maxgen
????i
????
????for?j=1:sizepop
????????
????????%速度更新
????????V(j:)?=?V(j:)?+?c1*rand*(gbest(j:)?-?pop(j:))?+?c2*rand*(zbest?-?pop(j:));
????????V(jfind(V(j:)>Vmax))=Vmax;
????????V(jfind(V(j:)????????
????????%種群更新
????????pop(j:)=pop(j:)+0.2*V(j:);
????????pop(jfind(pop(j:)>popmax))=popmax;
????????pop(jfind(pop(j:)????????
????????%自適應(yīng)變異
????????pos=unidrnd(21);
????????if?rand>0.95
????????????pop(jpos)=5*rands(11);
????????end
??????
????????%適應(yīng)度值
????????fitness(j)=fun1(pop(j:)inputnumhiddennumoutputnumnetinputnoutputn);
????end
????
????for?j=1:sizepop
????%個(gè)體最優(yōu)更新
????if?fitness(j)?????????gbest(j:)?=?pop(j:);
????????fitnessgbest(j)?=?fitness(j);
????end
????
????%群體最優(yōu)更新?
????if?fitness(j)?????????zbest?=?pop(j:);
????????fitnesszbest?=?fitness(j);
????end
????
????end
????
????yy(i)=fitnesszbest;????
????????
end

%%?結(jié)果分析
plot(yy)
title([‘適應(yīng)度曲線??‘?‘終止代數(shù)=‘?num2str(maxgen)]);
xlabel(‘進(jìn)化代數(shù)‘);ylabel(‘適應(yīng)度‘);

x=zbest;
%%?把最優(yōu)初始閥值權(quán)值賦予網(wǎng)絡(luò)預(yù)測
%?%用遺傳算法優(yōu)化的BP網(wǎng)絡(luò)進(jìn)行值預(yù)測
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+hidd

評(píng)論

共有 條評(píng)論