资源简介
一、代码有详细的注释
二、计算过程分步进行,条理清晰
三、适合数学建模初学者学习
代码片段和文件信息
function [max_positionmax_value]=liziqun(flimit1limit2)
% 大量的问题最终可归结为函数的优化问题,通常这些函数是非常复杂的,主要表现为规模大,维数高,非线性,非凸和不可微等特性,而且有的函数存在大量局部极小。许多传统确定性优化算法收敛速度较快,计算精度高,但对初值敏感,易陷入局部最小。而一些具有全局性的优化算法,如遗传算法,模拟退火算法,进化规划等,受限于各自的机理和单一结构,对于高维复杂函数难以实现高效优化。PSO算法通过改进或结合其他算法,对高维复杂函数可以实现高效优化
%f 要找最大值的函数 可在命令行窗口输入 f=@(x)(1-cos(3.*x).*exp(-x))
%limit1 要在何范围内找这个函数的最大值 可输入[04]
%limit2 要在和范围呢显示这个函数 可输入【04】
N = 50; % 初始种群个数
d = 1; % 空间维数
ger = 100; % 最大迭代次数
limit = limit1; %初始化时规定粒子的最大值和最小值位置
vlimit = [-1 1]; % 设置速度限制
w = 0.8; % 惯性权重
c1 = 0.5; % 自我学习因子
c2 = 0.5; % 群体学习因子
%第一步画出初始函数图像
% 1、ezplot(fun)在默认区间-2π< x < 2π 绘制函数fun(x)的图像其中fun(x)是x的一个显函数。fun可以是一个函数句柄或者字符。
% 2、ezplot(fun[xminxmax])在区间 xmin figure(1);
ezplot(flimit2);
title(‘初始状态图‘);
%第二步 规定出粒子群搜索公式的的各个参数,在本函数的因变量中
%第三步 初始化种群的位置在空间中随机分布
%x为 N*d的数组,N个d维的点
for i = 1:d
x = limit(i 1) + (limit(i 2) - limit(i 1)) * rand(N d);%rand(Nd)为初始化N*d大小的随机数矩阵 把x分布到第i维
end
%第四步 等式中的其他变量的初始值
v = rand(N d); % 初始种群的速度
xm = x; % 每个个体的历史最佳位置
ym = zeros(1 d); % 种群的历史最佳位置
fxm = zeros(N 1); % 每个个体的历史最佳适应度
fym = -inf; % 种群历史
相关资源
- matlab_OFDM调制解调(来自剑桥大学)
- Matlab路面裂缝识别69319
- 高灵敏度GPS接收机MATLAB仿真,附捕获
- 基于MATLAB的质点弹道计算与外弹道优
- 阵列天线的matlab仿真
- MATLAB 经典程序源代码大全
- MATLAB小波软阈值去噪代码33473
- 天线阵的波束形成在MATLAB仿真程序及
- 非线性SVM算法-matlab实现
- 《MATLAB 智能算法超级学习手册》-程序
- 组合导航matlab程序
- 读取txt文件内容matlab代码实现
- Matlab实现基于相关的模板匹配程序
- matlab优化工具箱讲解
- 基于MATLAB的快速傅里叶变换
- 光纤传输中的分布傅立叶算法matlab实
- 基于matlab的图像处理源程序
- matlab 椭圆拟合程序
- 算术编码解码matlab源代码
- optical_flow 光流法 matlab 实现程序
- 引导图像滤波器 Matlab实现
- 分形几何中一些经典图形的Matlab画法
- OFDM系统MATLAB仿真代码
- SVM工具箱(matlab中运行)
- 图像小波变换MatLab源代码
- LU分解的MATLAB实现
- 冈萨雷斯数字图像处理matlab版(第三
- 替代数据法的matlab程序
- 用matlab实现的多站定位系统性能仿真
- 通过不同方法进行粗糙集属性约简m
评论
共有 条评论