|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?我要加入
x
帮个忙啊!!!!!!
错误:
??? Error: File: C:\MATLAB6p5\work\I\AdaptFunc.m Line: 1 Column: 30
")" expected, "(" found.
Error in ==> C:\MATLAB6p5\work\I\InitSwarm.m
On line 62 ==> ParSwarm(k,2*ParticleSize+1)=AdaptFunc(ParSwarm(k,1:ParticleSize));
函数:
function y=AdaptFunc(ParSwarm(k,1:ParticleSize))
y=1500ParSwarm(k,1)+2500ParSwarm(k,2)+0*sum(ParSwarm(k,1:ParticleSize));
一下是主程序InitSwarm.m
:
SwarmSize=30;
ParticleSize=2;
ParticleScope=[0 15;0 10];
[row,colum]=size(ParticleSize);
if row>1|colum>1
error('输入的粒子的维数错误,是一个1行1列的数据。');
end
[row,colum]=size(ParticleScope);
if row~=ParticleSize|colum~=2
error('输入的粒子的维数范围错误。');
end
ParSwarm=rand(SwarmSize,2*ParticleSize+1);
%对粒子群中位置,速度的范围进行调节
for k=1:ParticleSize
ParSwarm(:,k)=ParSwarm(:,k)*(ParticleScope(k,2)-ParticleScope(k,1))+ParticleScope(k,1);%调节位置
%调节速度,使速度与位置的范围一致
ParSwarm(:,ParticleSize+k)=ParSwarm(:,ParticleSize+k)*(ParticleScope(k,2)-ParticleScope(k,1))+ParticleScope(k,1);%调节速度
end
%对每一个粒子计算其适应度函数的值
for k=1:SwarmSize
ParSwarm(k,2*ParticleSize+1)=AdaptFunc(ParSwarm(k,1:ParticleSize));
end
%初始化粒子群最优解矩阵,粒子群最优解矩阵全部设为零
OptSwarm=zeros(SwarmSize+1,ParticleSize);
[maxValue,row]=max(ParSwarm(:,2*ParticleSize+1));
%寻找适应度函数值最大的解在矩阵中的位置(行数)
OptSwarm=ParSwarm(1:SwarmSize,1:ParticleSize);%局部最优解
OptSwarm(SwarmSize+1,:)=ParSwarm(row,1:ParticleSize);%全局最优解
|
|