资源简介
for i=1:popcount
pop(i,:)=rand(1,9);%初始化粒子位置
V(i,:)=rand(1,9);%初始化粒子速度
%计算粒子适应度值
Center=pop(i,1:3);
SP=pop(i,4:6);
W=pop(i,7:9);
Distance=dist(Center',SamIn);
SPMat=repmat(SP',1,SamNum);%repmat具体作用
UnitOut=radbas(Distance./SPMat);
NetOut=W*UnitOut;%网络输出
Error=SamOut-NetOut;%网络误差
%SSE=sumsqr(Error);
%fitness(i)=SSE;
RMSE=sqrt(sumsqr(Error)/SamNum);
fitness(i)=RMSE;
%fitness(i)=fun(pop(i,:));
end
代码片段和文件信息
clc;
clear;
tic;
SamNum=100; %训练样本数
TargetSamNum=100; %测试样本数
InDim=1; %样本输入维数
UnitNum=2; %隐节点数
MaxEpoch=1200; %最大训练次数
%E0=0.2; %目标误差
gbesthistory=[];
% 根据目标函数获得样本输入输出(训练样本)
rand(‘state‘sum(100*clock));
%NoiseVar=0.0005;
%Noise=NoiseVar*randn(1SamNum);
load data1
SamIn=c1‘;
%SamIn=8*rand(1SamNum)-4;
SamOutNoNoise=1.1*(1-SamIn+2*SamIn.^2).*exp(-SamIn.^2/2);
%SamOut=SamOutNoNoise+Noise;
SamOut=SamOutNoNoise;
%测试样本
load data2
TargetIn=c2‘;
%TargetIn=-4:0.08:4;
TargetOut=1.1*(1-TargetIn+2*TargetIn.^2).*exp(-TargetIn.^2/2);
figure
hold on
grid
%plot(SamInSamOut‘k*‘)
plot(TargetInTargetOut‘k*‘)
xlabel(‘Input x‘);
ylabel(‘Output y‘);
%%以上程序没问题
%粒子群算法中的两个参数
c1 = 1.49445;
c2 = 1.49445;
popcount=10; %粒子数
poplength=6; %粒子维数
Wstart=0.9;%初始惯性权值
Wend=0.2;%迭代次数最大时惯性权值
%个体和速度最大最小值
Vmax=1;
Vmin=-1;
popmax=4;
popmin=-4;
%粒子位置速度和最优值初始化
for i=1:popcount
pop(i:)=rand(19);%初始化粒子位置
V(i:)=rand(19);%初始化粒子速度
%计算粒子适应度值
Center=pop(i1:3);
SP=pop(i4:6);
W=pop(i7:9);
Distance=dist(Center‘SamIn);
SPMat=repmat(SP‘1SamNum);%repmat具体作用
UnitOut=radbas(Distance./SPMat);
NetOut=W*UnitOut;%网络输出
Error=SamOut-NetOut;%网络误差
%SSE=sumsqr(Error);
%fitness(i)=SSE;
RMSE=sqrt(sumsqr(Error)/SamNum);
fitness(i)=RMSE;
%fitness(i)=fun(pop(i:));
end
%适应度函数(适应度值为RBF网络均方差)
[bestfitness bestindex]=min(fitness);
gbest=pop(bestindex:);%全局最优值
pbest=pop;%个体最优值
pbestfitness=fitness;%个体最优适应度值
gbestfitness=bestfitness;%全局最优适应度值
%迭代寻优
for i=1:MaxEpoch
Vmax=1.00014^(-i);
Vmin=-1.00014^(-i);
for j=1:popcount
% if (fitness(j) % S(j)=0;
%end
%S(j)=1-(fitness(j)/100)^2;
% GW(j)=Wstart-S(j)*(Wstart-Wend);
% GW(j)=Wend+(GW(j)-Wend)*(MaxEpoch-i)/MaxEpoch;
GW=Wstart-(Wstart-Wend)*i/MaxEpoch;
%速度更新(第一种方法精度最高)
V(j:) = 1.000009^(-i)*(gbestfitness/fitness(j)+2)*rand*V(j:) + c1*rand*(pbest(j:) - pop(j:)) + c2*rand*(gbest - pop(j:));
%V(j:) = GW*((fitness(j)/2000)^2+1)*rand*V(j:) + c1*rand*(pbest(j:) - pop(j:)) + c2*rand*(gbest - pop(j:));
%V(j:) = GW*V(j:) + c1*rand*(pbest(j:) - pop(j:)) + c2*rand*(gbest - pop(j:));
%V(j:) = 0.9*V(j :) + c1*rand*(pbest(j:) - pop(j:)) + c2*rand*(gbest - pop(j:));
%V(j:) = 0.9*1.0003^(-j)* V(j:) + c1*rand*(pbest(j:) - pop(j:)) + c2*rand*(gbest - pop(j:));
%V(j:) = (gbestfitness/(exp(-fitness(j))+1)+0.5)*rand*V(j:) + c1*rand*(pbest(j:) - pop(j:)) + c2*rand*(gbest - pop(j:));
V(jfind(V(j:)>Vmax))=Vmax;
V(jfind(V(j:)
%粒子更新
pop(j:)=pop(j:)+0.5*V(j:);
pop(jfind(pop(j:)>popmax))=popmax;
pop(jfind(pop(j:)
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 538 2014-07-14 22:19 PSO-RBF\data1.mat
文件 527 2014-07-14 22:20 PSO-RBF\data2.mat
文件 5271 2014-07-15 08:43 PSO-RBF\PSORBF.m
目录 0 2015-04-16 12:35 PSO-RBF
----------- --------- ---------- ----- ----
6336 4
- 上一篇:商人过河MATLAB.rar
- 下一篇:hurst指数的MATLAB实现
相关资源
- 粒子群算法优化pid源码 matlab仿真.ra
- rbf神经网络求解机器人的运动学逆解
- 粒子群算法优化RBF网络matlab源码
- pso解决单目标优化问题
- 基本粒子群算法,MATLAB文件的M文件编
- RBF神经网络建模与预测(1)
- matlab粒子群算法PSO实现函数极值优化
- PSO负载均衡算法-matlab实现
- l粒子群算法工具箱psot
- PSO_LSSVM程序代码及LSSVM工具箱
- libsvm-3.1-[FarutoUltimate3.1
- PSO优化模糊控制器进行电动汽车能量
- 多目标粒子群社团检测算法MODPSO
- PSO优化SVM参数matlab
- 蜂群SVMABC-SVM遗传算法SVMGA-SVM粒子群
- 遗传粒子群优化算法-GAPSO.rar
- RBF神经网络自适应控制MATLAB仿真_刘金
- RBF神经网络自适应控制MATLAB仿真_刘金
- pso优化bp神经网络代码
- MATLAB 多目标粒子群算法源代码
- 这是一个用matlab实现的RBF神经网络手
- 9 RBF、GRNN和PNN神经网络案例matlab参考
- 粒子群算法应用在路径规划matlab
-
RBF神经网络自适应控制simuli
nk实现欢 - MOPSO+
- 粒子群算法matlab含注释
- pso-bp代码
- 基于权重改进的PSO
- 基于RBF网络逼近的自适应控制
- PSO优化PID参数
评论
共有 条评论