求最优解的matlab算法,粒子群算法matlab以求解函数最优解为例

粒子群算法matlab以求解函数最优解为例

clear; clc; close all;

N=100; %粒子个数

D=2; %粒子维数

MaxIter=500; %最大迭代次数

C1max=1.8; %权重参数,自适应

C2max=1.8;

C1=1.2;

C2=1.2;

w=0.79;

Wmax=0.8; %对自己速度的记忆

Wmin=0.4;

Xmax=4; Xmin=-4; %自变量的范围

Vmax=1; Vmin=-1; %速度的范围

x=rand(N,D)*(Xmax-Xmin)+Xmin; %初始化N个粒子的D维空间位置

v=rand(N,D)*(Vmax-Vmin)+Vmin; %初始化N个粒子的D维空间速度

p=x;

pbest=ones(N,1);

for i=1:N

pbest(i)=func(p(i,:)); %计算适应度,此处求的优化目标是最小值

end

g=ones(1,D);

gbest=min(pbest); %全局最小值

index=find(pbest==gbest);

g=p(index(1),:); %全局最小位置

gb=ones(1,MaxIter); %记录历史的全局最小

for i=1:MaxIter

for j=1:N

if func(x(j,:))

pbest(j)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值