MAT之PSO:利用PSO+ω参数实现对一元函数y = sin(10*pi*x) ./ x进行求解优化,找到最优个体适应度

简介: MAT之PSO:利用PSO+ω参数实现对一元函数y = sin(10*pi*x) ./ x进行求解优化,找到最优个体适应度

输出结果

image.png


实现代码

x = 1:0.01:2;        

y = sin(10*pi*x) ./ x;

figure

plot(x, y)

title('绘制目标函数曲线图—Jason niu');

hold on

c1 = 1.49445;

c2 = 1.49445;

maxgen = 50;    

sizepop = 10;  

Vmax = 0.5;  

Vmin = -0.5;

popmax = 2;    

popmin = 1;

ws = 0.9;  

we = 0.4;

for i = 1:sizepop

   pop(i,:) = (rands(1) + 1) / 2 + 1;  

   V(i,:) = 0.5 * rands(1);

   fitness(i) = fun(pop(i,:));

end

[bestfitness bestindex] = max(fitness);

zbest = pop(bestindex,:);

gbest = pop;  

fitnessgbest = fitness;  

fitnesszbest = bestfitness;  

for i = 1:maxgen

   w = ws - (ws-we)*(i/maxgen);  

   for j = 1:sizepop

       V(j,:) = w*V(j,:) + c1*rand*(gbest(j,:) - pop(j,:)) + c2*rand*(zbest - pop(j,:));

       V(j,find(V(j,:)>Vmax)) = Vmax;

       V(j,find(V(j,:)<Vmin)) = Vmin;

       pop(j,:) = pop(j,:) + V(j,:);

       pop(j,find(pop(j,:)>popmax)) = popmax;

       pop(j,find(pop(j,:)<popmin)) = popmin;

     

       fitness(j) = fun(pop(j,:));

   end

   for j = 1:sizepop  

       if fitness(j) > fitnessgbest(j)

           gbest(j,:) = pop(j,:);    

           fitnessgbest(j) = fitness(j);

       end

       if fitness(j) > fitnesszbest

           zbest = pop(j,:);

           fitnesszbest = fitness(j);

       end

   end

   yy(i) = fitnesszbest;    

end

[fitnesszbest zbest]

plot(zbest, fitnesszbest,'r*')

figure

plot(yy)

title('PSO:PSO算法(快于GA算法)+ω参数实现找到最优个体适应度—Jason niu','fontsize',12);

xlabel('进化代数','fontsize',12);ylabel('适应度','fontsize',12);


相关文章
|
4月前
|
算法 Python
`scipy.optimize`模块提供了许多用于优化问题的函数和算法。这些算法可以用于找到函数的最小值、最大值、零点等。
`scipy.optimize`模块提供了许多用于优化问题的函数和算法。这些算法可以用于找到函数的最小值、最大值、零点等。
|
6月前
Stata中的治疗效果:RA:回归调整、 IPW:逆概率加权、 IPWRA、 AIPW
Stata中的治疗效果:RA:回归调整、 IPW:逆概率加权、 IPWRA、 AIPW
|
6月前
|
资源调度 算法
Matlab马尔可夫链蒙特卡罗法(MCMC)估计随机波动率(SV,Stochastic Volatility) 模型
Matlab马尔可夫链蒙特卡罗法(MCMC)估计随机波动率(SV,Stochastic Volatility) 模型
|
机器学习/深度学习 算法 数据挖掘
最优化--梯度下降法--牛顿法(详解)
最优化--梯度下降法--牛顿法(详解)
1529 1
|
机器学习/深度学习 传感器 算法
【粘菌算法】基于粘菌算法SMA求解单目标优化问题附matlab代码
【粘菌算法】基于粘菌算法SMA求解单目标优化问题附matlab代码
【矩阵分析】矩阵幂级数 发散 条件 || 幂级数 与 解析函数 的关系 || 幂级数 收敛半径r 的求法
【矩阵分析】矩阵幂级数 发散 条件 || 幂级数 与 解析函数 的关系 || 幂级数 收敛半径r 的求法
【矩阵分析】矩阵幂级数 发散 条件 || 幂级数 与 解析函数 的关系 || 幂级数 收敛半径r 的求法
|
机器学习/深度学习 算法
《最优化方法》——无约束具体算法以及KK
《最优化方法》——无约束具体算法以及KK
335 0
《最优化方法》——无约束具体算法以及KK
|
算法
基于MATLAB的pso粒子群算法优化——计算样本再拟合函数最大值
基于MATLAB的pso粒子群算法优化——计算样本再拟合函数最大值
239 0
基于MATLAB的pso粒子群算法优化——计算样本再拟合函数最大值
|
机器学习/深度学习 传感器 算法
【乌鸦算法】基于正弦余弦指引乌鸦算法求解单目标优化问题含Matlab代码
【乌鸦算法】基于正弦余弦指引乌鸦算法求解单目标优化问题含Matlab代码
|
算法 数据可视化
DL之GD:利用LogisticGD算法(梯度下降)依次基于一次函数和二次函数分布的数据集实现二分类预测(超平面可视化)
DL之GD:利用LogisticGD算法(梯度下降)依次基于一次函数和二次函数分布的数据集实现二分类预测(超平面可视化)
DL之GD:利用LogisticGD算法(梯度下降)依次基于一次函数和二次函数分布的数据集实现二分类预测(超平面可视化)