PSO求解函数最小值的MATLAB例程|MATLAB源代码
创始人
2024-11-11 12:08:31
0

本篇文章适合PSO入门,进阶的可能会觉得太简单的。

目录

  • PSO
  • 例程
    • 作用
    • 运行结果
    • 代码
    • 函数解释
  • 例程修改tips

PSO

Particle Swarm Optimization,粒子群优化算法,通过模拟鸟群或鱼群的行为来寻找最优解。在计算时通过对一群粒子的位置和速度进行迭代,是全局搜索算法。
相应的还有蚁群、遗传算法、模拟退火等智能算法。后面更新

例程

作用

这是一段PSO的例程。只有一个m文件,在里面填写好需要求解的函数后,就能得到PSO求解的函数最小值和对应的自变量取值。
在现在的函数示例中,设置的待求函数为F = x^2 + x - 6,从详情页能看到,求出来是当x=-0.25时,函数得到最小值-6.25

运行结果

设置如下的目标函数:
f ( x ) = x 2 + x − 6 f(x) = x^2 + x - 6 f(x)=x2+x−6

在代码编辑窗口里面如下:
请添加图片描述

代码

% PSO求解函数最小值 % 2024-7-29/Ver1 clear;clc;close all; rng(0); [xm, fv] = PSO(@fitness, 1, 1.5, 1.5, 0.5, 100000, 1); fprintf('满足目标函数取最小值时的自变量为:%f\n',xm); fprintf('目标函数的最小值为:%f\n',fv);   function F = fitness(x) %设置目标函数 F = x^2 + x - 6; end  function [xm, fv] = PSO(fitness, pop_size, c1, c2, w, epochs, chromosome_size) %PSO计算函数 % 完整代码下载链接:https://gf.bilibili.com/item/detail/1105924012  end 

函数解释

PSO这个函数形式如下:
[xm, fv] = PSO(fitness, pop_size, c1, c2, w, epochs, chromosome_size)

其中,fitness是目标函数,所以在使用的时候这里填写目标函数“@fitness”,pop_size和chromosome_size是每次计算的未知数个数(群体鬼墨),c1和c2是加速常数,w是惯性权重()使微粒保持运动的惯性,使其有扩展搜索空间的趋势,有能力探索新的区域)。epochs是迭代步数。

例程修改tips

  • 加大PSO函数的“epochs”这一个量(也就是倒数第二个输入量),可以加大迭代次数,计算时间增加、精度提升
  • 修改pop_size和chromosome_size,可以更改每次由PSO计算的量的个数

相关内容

热门资讯

第2分钟秘籍!逍遥辅助器手机版... 第2分钟秘籍!逍遥辅助器手机版,新九哥辅助开挂(辅助)一直存在有工具(哔哩哔哩)1、逍遥辅助器手机版...
三分钟方针!指尖四川小程序破解... 三分钟方针!指尖四川小程序破解器,新二号透视辅助(辅助)果然真的是有修改器(哔哩哔哩)1、任何指尖四...
十分钟绝活儿!欢乐游戏城攻略,... 十分钟绝活儿!欢乐游戏城攻略,新九天辅助器(辅助)一直有挂辅助器(哔哩哔哩)欢乐游戏城攻略是不是有人...
一分钟步骤!新上游通用挂是真的... 一分钟步骤!新上游通用挂是真的吗,新漫游正版辅助软件(辅助)本来真的有辅助器(哔哩哔哩)亲,关键说明...
第二分钟资料!越乡游辅助脚本,... 第二分钟资料!越乡游辅助脚本,新西游游戏辅助(辅助)总是有挂辅助器(哔哩哔哩)亲,关键说明,越乡游辅...
第七分钟窍门!天天贵阳大瓮安插... 第七分钟窍门!天天贵阳大瓮安插件,火神微信辅助(辅助)原来是真的辅助器(哔哩哔哩)1、玩家可以在天天...
四分钟经验!大唐麻将辅助软件,... 四分钟经验!大唐麻将辅助软件,小程序财神十三张脚本(辅助)真是存在有修改器(哔哩哔哩)1、进入游戏-...
第1分钟诀窍!微信小程序游戏破... 第1分钟诀窍!微信小程序游戏破解器,卡农血拼辅助(辅助)真是是有插件(哔哩哔哩)1、每一步都需要思考...
第一分钟积累!赣州冲关辅助,微... 第一分钟积累!赣州冲关辅助,微信开心十三张小程序脚本(辅助)好像存在有工具(哔哩哔哩)1、完成微信开...
七分钟阶段!盛世辅助器,新道游... 七分钟阶段!盛世辅助器,新道游透视脚本免费下载(辅助)竟然真的有神器(哔哩哔哩)1、打开软件启动之后...