PSO粒子群算法的matlab实践【PSO学习笔记_02】
在PSO粒子群算法【PSO学习笔记_01】_L1234X的博客-CSDN博客中,主要以介绍PSO算法的个人理解,以理论为主,本文将在此基础上进行实践。
目录
例题
对应函数图像用matlab画出为:
函数:
画图程序:
解题
结合例题可知:
仿真计算结果:
补充:
参考文献
例题
对应函数图像用matlab画出为:
函数:
function y=fitness1(x)
%fitness函数,即例3-1中的测试函数
%输入x,给出相应的y值,在x=(0,0,…,0)处有全局极小点0
[row,col]=size(x);
if row>1error('输入的参数错误');
end
y=sum(x.^2+x-6);
画图程序:
function Drawfitness1()
x=[-4:0.05:4];
y=x;
[X,Y]=meshgrid(x,y);
[row,col]=size(X);
for l=1:colfor h=1:rowz(h,l)=fitness1([X(h,l),Y(h,l)]);end
end
surf(X,Y,z);
shading interp
解题
根据前文:
结合例题可知:
fitness适应度函数(目标函数)为:
因此可在matlab中建立适应度函数(目标函数)代码:
function F=fitness(x)
F=0;
for i=1:30F=F+x(i)^2+x(i)-6
end
此外,根据i可知自变量个数D=30。
设函数的最小点均为0,粒子群规模为N=50,惯性系数为w=0.5,学习因子c1=1.5、c2=2.5,迭代步数M=100。然后在matlab命令行窗口输入如下代码即可:
x=zeros(1,30)%创造一个1行30列的0矩阵
%利用前文中的PSO粒子群函数求解目标函数最小值
[xm1,fv1]=PSO(@fitness,50,1.5,2.5,0.5,100,30)%其中@fitness为句柄函数,实际上就是指的题中目标函数
仿真计算结果:
则在上述条件下求得目标函数
的最小值为-185.4780
补充:
计算结果并不一定该目标函数“真正”的最小值,只能说为在上述假定条件下利用该PSO算法得到的最小值。
PSO为随机算法,即使是相同的参数,经过几次运算也可能得到不同的结果,因为最初位置、速度都是随机给定的。并且当调整函数中N、w、M、c1、c2参数时得到的结果也可能不同。
迭代次数M并不是越大结果越精准,因为PSO的缺点,算法优化到一定程度时其精度就无法继续优化了,其它参数同理。各参数更像一个经验参数,需要各参数之间的配合以达最优解。
参考文献
《matlab》智能算法 温正 孙华克
未完待续...
PSO粒子群算法的matlab实践【PSO学习笔记_02】相关推荐
- PSO粒子群算法微电网优化调度(微电网孤岛运行优化调度)matlab程序
PSO粒子群算法微电网优化调度(微电网孤岛运行优化调度)matlab程序 [含风电.光伏.微型燃机.储能蓄电池.燃料电池] 参考文献:基于改进粒子群算法的微电网优化调度 摘 要:当今全球普遍面临着能源 ...
- PSO粒子群算法优化BP神经网络(PSO-BPNN)回归预测MATLAB代码
PSO粒子群算法优化BP神经网络(PSO-BPNN)回归预测MATLAB代码(有优化前后的对比) 代码注释清楚. main为运行主程序,可以读取本地EXCEL数据,也可以加载本地数据.mat,使用换自 ...
- 基于马尔可夫过程的一种新型混合PSO粒子群算法(SCI二区高被引文献)介绍及算法复现(使用chatgpt)
以下是一篇算法领域的SCI二区文献(原文见附件),介绍了一种使用Markov概率转移矩阵对种群拓扑结构进行加权的粒子群算法,相比于标准PSO算法该算法提高了全局覆盖率,更容易跳出局部最优,但是在局部最 ...
- 粒子群算法的matlab实现
转自:https://blog.csdn.net/just_do_it_123/article/details/50993439 粒子群算法,也称粒子群优化算法(Particle Swarm Opti ...
- jeremy的路径规划学习-1.三维地图定义,散点拟合插值与粒子群算法(matlab实现)
jeremy的路径规划学习-1.三维地图定义,散点拟合插值与粒子群算法(matlab实现) 本文基于小黎的ally学习资料实现,感谢该博主的无私奉献 三维地图与二维地图的差别 1.二维无高度信息,多用 ...
- PSO粒子群算法调节PID控制器参数
概述 PSO(粒子群算法)在处理连续问题上有着较强的能力,因此很适合用来做参数优化,而PID控制器由三个参数组成,它们分别是: Kp.Ki.KdK_p.K_i.K_dKp.Ki.Kd 我们可以把 ...
- 学习笔记|PSO粒子群算法(1)
粒子群算法 源于对鸟群捕食行为的研究,每只鸟之间通过集体的协作使群体达到最优目的,使一种基于Swarm Intelligence的优化算法,关键点在于处理"社会行为"和" ...
- 粒子群算法的matlab实现(一)
粒子群算法(Particle Swarm Optimization,PSO)是20世纪90年代兴起的一门学科,因其概念简明.实现方便.收敛速度快而为人所知.粒子群算法的基本思想是模拟鸟群随机搜寻食物的 ...
- 粒子群算法及其matlab实现
粒子群算法( Particle Swarm Optimization, PSO)最早是由Eberhart和Kennedy于1995年提出,它的基本概念源于对鸟群觅食行为的研究.设想这样一个场景:一群鸟 ...
最新文章
- NHibernate3剖析:Query篇之NHibernate.Linq标准查询
- zabbix icmp ping 监控主机_Zabbix监控 MySQL 性能
- c语言if不能判断u8变量值,C语言变量名命规则.doc
- 修改epo服务器 gps,epo
- ios图片轮播 (基础篇——UIScrollView实现方式)
- Java运行时内存工作过程
- InstallShield 2012 Spring新功能试用(6): InstallScript工程支持64位组件(Components)...
- 1.4 多项式拟合实例
- 开源程序安装框架-BitNami
- JDK动态代理的意义和用法
- c语言 常量和变量 ppt,c语言常量与变量.ppt
- 计算机专业技能考核方案,巩义市计算机专业技能课教学考核方案.doc
- 【高等数学】定积分1
- windows运行库文件
- Orcle 12c 新特性--- 支持PDB OMF
- ae,me,pr功能区别
- 9个网站,给不知道去哪找数据的你
- 怎么访问到别人的电脑?
- DISPO与EKGRP 的关系(MRP控制者和采购组)
- I@de6ced(downloaded)