导航:首页 > 源码编译 > 粒子群算法matlab实例

粒子群算法matlab实例

发布时间:2023-06-15 09:53:09

‘壹’ matlab用粒子群算法求解方程组最优解

这关键是适应度函数的问题,你可以编写如下适应度函数:
F=|E(X1y1+X2y2)-0|+|D(X1y1+X2y2)-1|,F值越小越好,||指的是绝对值。

而变量你就选取X1和X2里的每个元素。比如X1=[x1,x2,x3];X2=[x4,x5,x6];你就可以设置PSO的变量为x1到x6这六个值。
答毕,不懂追问。

‘贰’ 精通MATLAB最优化计算的实 例 目 录

第2章 MATLAB计算基础
例2-1 元胞数组创建与显示实例。 20
例2-2 矩阵创建实例。 22
例2-3 特殊矩阵生成函数使用实例。 23
例2-4 矩阵基本运算实例。 24
例2-5 矩阵函数运算实例。 24
例2-6 矩阵分解运算函数使用实例。 25
例2-7 复数构造实例。 26
例2-8 复数矩阵构造实例。 26
例2-9 复数函数绘图实例。 27
例2-10 符号表达式创建实例。 29
例2-11 极限和极值的符号运算实例。 31
例2-12 微积分的符号运算实例。 31
例2-13 常微分方程符号运算实例。 32
第3章 MATLAB绘图基础
例3-1 工作空间直接做图法使用实例。 34
例3-2 二维图形绘制实例。 35
例3-3 三维曲线绘制函数使用实例。 38
例3-4 三维网格曲面图绘制应用实例。 38
例3-5 阴影曲面绘制函数surf使用实例。 39
例3-6 绘图命令使用实例。 41
第4章 MATLAB程序设计基础
例4-1 M文件创建实例。 46
例4-2 return语句使用实例。 49
例4-3 匿名函数创建实例。 51
例4-4 显示函数输入和输出参数的数目实例。 54
例4-5 可变数目的参数传递实例。 55
例4-6 函数内部的输入参数修改实例。 56
例4-7 函数参数传递实例。 56
例4-8 全局变量使用实例。 57
例4-9 函数句柄创建和调用实例。 58
例4-10 处理函数句柄的函数使用实例。 59
例4-11 嵌套计算与直接求值的比较实例。 69
例4-12 嵌套计算与非嵌套计算的比较实例。 70
例4-13 例外处理机制使用实例。 71
例4-14 nargin函数应用实例。 72
例4-15 全局变量使用实例。 73
例4-16 通过varargin传递参数的实例。 74
第5章 MATLAB优化工具箱
例5-1 fminunc求解器应用实例。 85
例5-2 fminsearch求解器应用实例。 86
例5-3 fmincon求解器应用实例。 88
例5-4 lsqnonlin求解器应用实例。 89
例5-5 linprog求解器应用实例。 90
例5-6 ga求解器应用实例。 91
第6章 无约束一维极值问题
例6-1 进退法求解极值区间实例。 95
例6-2 黄金分割法求解极值实例。 98
例6-3 斐波那契法求解极值实例。 101
例6-4 基本牛顿法求解极值实例。 104
例6-5 全局牛顿法求解极值实例。 106
例6-6 割线法求解极值实例。 109
例6-7 抛物线法求解极值实例。 111
例6-8 三次插值法求解极值实例。 114
例6-9 Goldstein法求解极值实例。 117
例6-10 Wolfe-Powell法求解极值实例。 119
例6-11 fminbnd函数求解极值实例1。 121
例6-12 fminbnd函数求解极值实例2。 122
例6-13 fminbnd函数求解极值实例3。 123
例6-14 fminbnd函数求解极值实例4。 123
例6-15 fminbnd函数求解极值实例5。 124
例6-16 fminsearch函数求解极值实例。 125
例6-17 改进的fminbnd函数求解极值实例1。 126
例6-18 改进的fminbnd函数求解极值实例2。 126
例6-19 改进的fminbnd函数求解极值实例3。 126
例6-20 改进的fminbnd函数求解极值实例4。 127
例6-21 maple函数求极小值实例1。 128
例6-22 maple函数求极小值实例2。 128
例6-23 maple函数求极小值实例3。 129
第7章 无约束多维极值问题
例7-1 模式搜索法求解无约束多维极值问题实例。 133
例7-2 Rosenbrock法求解无约束多维极值问题实例。 136
例7-3 单纯形搜索法求解无约束多维极值问题实例。 140
例7-4 Powell法求解无约束多维极值问题实例。 144
例7-5 最速下降法求解无约束多维极值问题实例。 146
例7-6 共轭梯度法求解无约束多维极值问题实例。 148
例7-7 牛顿法求解无约束多维极值问题实例。 150
例7-8 修正牛顿法求解无约束多维极值问题实例。 152
例7-9 DFP法求解无约束多维极值问题实例。 155
例7-10 BFGS法求解无约束多维极值问题实例。 157
例7-11 信赖域法求解无约束多维极值问题实例。 160
例7-12 显式最速下降法求正定二次函数极值的应用实例。 162
例7-13 fminsearch函数求解无约束多维极值问题实例1。 163
例7-14 fminsearch函数求解无约束多维极值问题实例2。 164
例7-15 fminsearch函数求解无约束多维极值问题实例3。 168
例7-16 fminunc函数求解无约束多维极值问题实例。 169
例7-17 fminimax函数求解无约束多维极值问题实例。 174
第8章 约束优化问题
例8-1 Rosen梯度投影法求解约束优化问题实例。 178
例8-2 外点罚函数法应用实例。 181
例8-3 通用罚函数法应用实例。 183
例8-4 外点混合罚函数法应用实例。 186
例8-5 内点罚函数法求解约束优化问题实例。 188
例8-6 混合罚函数法求解约束优化问题实例。 191
例8-7 加速混合罚函数法求解约束优化问题实例。 193
例8-8 乘子法求解约束优化问题实例。 195
例8-9 坐标轮换法求解约束优化问题实例。 199
例8-10 复合形法求解约束优化问题实例。 203
例8-11 fmincon函数求解约束优化问题实例。 205
第9章 非线性最小二乘优化问题
例9-1 G-N法求解非线性最小二乘优化问题实例。 209
例9-2 修正G-N法求解非线性最小二乘优化问题实例。 211
例9-3 L-M法求解非线性最小二乘优化问题实例。 214
例9-4 lsqnonlin求解非线性最小二乘优化问题实例。 216
第10章 线性规划
例10-1 单纯形法求解线性规划实例1。 221
例10-2 单纯形法求解线性规划实例2。 222
例10-3 修正单纯形法求解线性规划实例。 228
例10-4 大M法求解线性规划实例。 230
例10-5 变量有界单纯形法求解线性规划实例。 231
例10-6 linprog函数求解线性规划实例1。 234
例10-7 linprog函数求解线性规划实例2。 234
例10-8 linprog函数求解线性规划实例3。 235
例10-9 linprog函数求解线性规划实例4。 235
第11章 整数规划
例11-1 割平面法求解整数规划实例。 243
例11-2 分支定界法求解整数规划实例1。 248
例11-3 分支定界法求解整数规划实例2。 249
例11-4 0-1规划应用实例。 251
例11-5 bintprog函数求解0-1规划实例。 252
第12章 二次规划
例12-1 拉格朗日法求解二次规划实例。 255
例12-2 起作用集法求解二次规划实例。 259
例12-3 路径跟踪法求解二次规划实例。 263
例12-4 quadprog函数求解二次规划实例1。 265
例12-5 quadprog函数求解二次规划实例2。 265
第13章 粒子群优化算法
例13-1 基本粒子群算法应用实例。 273
例13-2 带压缩因子的粒子群算法应用实例。 278
例13-3 线性递减权重的粒子群算法应用实例。 281
例13-4 自适应权重的粒子群算法应用实例。 285
例13-5 随机权重的粒子群算法应用实例。 288
例13-6 同步变化的学习因子粒子群算法应用实例。 290
例13-7 同步变化的学习因子粒子群算法应用实例。 293
例13-8 二阶粒子群算法应用实例。 296
例13-9 二阶振荡粒子群算法应用实例。 299
例13-10 混沌粒子群算法应用实例。 302
例13-11 基于自然选择的粒子群算法应用实例。 305
例13-12 基于杂交的粒子群算法应用实例。 309
例13-13 基于模拟退火的粒子群算法应用实例。 312
第14章 遗传算法
例14-1 基本遗传算法应用实例。 317
例14-2 顺序选择遗传算法应用实例。 321
例14-3 适值函数标定的遗传算法应用实例。 324
例14-4 大变异遗传算法应用实例。 329
例14-5 自适应遗传算法应用实例。 333
例14-6 双切点交叉遗传算法应用实例。 336
例14-7 多变异位自适应遗传算法应用实例。 340
例14-8 优化工具的ga求解器应用实例1。 341
例14-9 优化工具的ga求解器应用实例2。 342
第15章 工程最优化问题实例
例15-1 生产任务分配问题应用实例1。 346
例15-2 生产任务分配问题应用实例2。 347
例15-3 运输问题应用实例。 350
例15-4 生产运输问题应用实例1。 354
例15-5 生产运输问题应用实例2。 357
例15-6 资源利用问题应用实例。 359
例15-7 下料问题应用实例。 361
例15-8 配套问题应用实例。 362
例15-9 有限选址问题应用实例。 364
例15-10 生产组织与计划问题应用实例。 365
例15-11 选址问题应用实例。 367
例15-12 销售利润最大化问题应用实例。 368
例15-13 库存问题应用实例1。 370
例15-14 库存问题应用实例2。 370
例15-15 库存问题应用实例3。 371
例15-16 最大体积问题应用实例。 372
例15-17 资源分配问题应用实例。 372
例15-18 和三角形有关的极值问题应用实例1。 373
例15-19 和三角形有关的极值问题应用实例2。 374
例15-20 点到曲线距离问题应用实例1。 375
例15-21 点到曲线距离问题应用实例2。 376
例15-22 点到曲线距离问题应用实例3。 377
例15-23 曲线到曲线距离问题应用实例。 379
第16章 经济金融最优化问题实例
例16-1 未考虑销售影响的利润最大化问题实例。 382
例16-2 考虑销售影响的利润最大化问题实例。 383
例16-3 最优消费问题应用实例。 384
例16-4 最优投资分配问题应用实例。 385
例16-5 资金最优使用问题实例。 387
例16-6 古诺竞争模型应用实例。 389
例16-7 斯塔克尔伯格模型应用实例。 390
例16-8 标准均值-方差投资组合应用实例。 392
例16-9 有上界的均值-方差投资组合应用实例。 393
例16-10 有交易成本的均值-方差投资组合应用实例。 394
例16-11 自融资均值-方差投资组合应用实例。 395

‘叁’ matlab 粒子群算法代码

目前混合整数规划是一个可研究的问题,这方面的论文也较多,有的是用四舍五入的方法取整,在matlab中用round函数可实现。也有用三角函数进行转化的,具体情况我不太清楚。另外你的问题有约束条件,在编程时需要加约束处理。

‘肆’ 求带约束条件的粒子群算法的MATLAB编程


这个比较简单,可以很容易的做出来
Matlab中提供了两种方法,数值和解析
1.数值解法使用filter函数
对于递推公式
a(1)*y(n)+a(2)*y(n-1)
+
...
+
a(na+1)*y(n-na)
=
b(1)*x(n)
+
b(2)*x(n-1)
+
...
+
b(nb+1)*x(n-nb)
我们可以变成如下
filter(b,a,x,zi)其中a和b就是上面的系数,x是需要计算的n,zi是初值
由于使用filter函数需要信号基础
我们这里不详细说明
2.解析解法就是Z变换
%首先我们要改变递推公式如下,否则没法的到正确结果
%y(n+1)=2y(n),y(0)=-2
L=ztrans(sym('y(n+1)'));%等式左边的Z变换
R=ztrans(sym('2*y(n)'));%等式右边的Z变换
S=L-R
%将初值y(0)带入,我们可以根据y(-1)推出y(0)=-2
%令Y=ztrans(y(n),n,z),y0=y(0),求解出S中的y(n)的Z变换结果
y0=-2;
s=subs(S,{'ztrans(y(n),n,z)','y(0)'},{'Y',y0});
%求解出y(n)的Z变换结果
Y=solve(s,'Y')
%对Y进行反Z变化
iztrans(Y)
S
=
z*ztrans(y(n),n,z)-y(0)*z-2*ztrans(y(n),n,z)
Y
=
-2*z/(z-2)
ans
=
-2*2^n

‘伍’ 用粒子群算法求解线性约束整数规划的Matlab程序

对粒子群的约束问题涉及的比较少。这儿摘抄下网络的内容:

PSO算法推广到约束优化问题,分为两类:(http://ke..com/view/1531379.htm)
(1)罚函数法。罚函数的目的是将约束优化问题转化成无约束优化问题。
(2)将粒子群的搜索范围都限制在条件约束簇内,即在可行解范围内寻优。

第一种方法有相关论文,看了下,感觉比较适合等式约束情况,比较类似于在适应度函数中加入拉格朗日乘子的做法,如果论文下不到的话,请留言。

第二种做法倒是用过。大概讲下。
针对你的问题,初始化两维向量,但是由于存在不等式约束,所以考虑先初始化向量的第一维,然后动态算出第二维的范围,随机出第二维变量。然后就是计算适应度值,全局、局部最优。
更新过程一样,先更新第一维变量,然后动态计算第二维的范围,更新第二维,如果更新后超过了边界,则取边界值(或者也可以再次重新更新,直到满足条件,直觉上感觉第一种还好点,第二种可能会出现无法更新的情况),更新完毕后,计算适应度,更新全局、局部最优解。

补充两个链接吧
http://download.csdn.net/detail/yinjian_2004/1567342
论文:基于改进粒子群优化算法的约束多目标优化

‘陆’ 求粒子群算法MATLAB完整代码

%% 清空环境
clear
clc
tic
%% 参数初始化
% 粒子群算法中的两个参数
c1 = 1.49445;
c2 = 1.49445;

maxgen = 200; % 进化次数
sizepop = 20; % 种群规模

Vmax = 1;
Vmin = -1;
popmax = 5;
popmin = -5;

%% 产生初始粒子和速度
for i = 1:sizepop
% 随机产生一个种群
pop(i,:) = 5 * rands(1,2); % 初始种群
V(i,:) = rands(1,2); % 初始化速度
% 计算适应度
fitness(i) = fun(pop(i,:)); % 染色体的适应度
end

% 找最好的染色体
[bestfitness bestindex] = min(fitness);
zbest = pop(bestindex,:); % 全局最佳
gbest = pop; % 个体最佳
fitnessgbest = fitness; % 个体最佳适应度值
fitnesszbest = bestfitness; % 全局最佳适应度值

%% 迭代寻优
for i = 1:maxgen
for j = 1:sizepop

% 速度更新
V(j,:) = 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,:) + 0.5*V(j,:);
pop(j,find(pop(j,:)>popmax)) = popmax;
pop(j,find(pop(j,:)<popmin)) = popmin;

% 自适应变异
if rand > 0.8
k = ceil(2*rand);
pop(j,k) = rand;
end

% 适应度值
fitness(j) = fun(pop(j,:));
end

% 个体最优更新
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

yy(i) = fitnesszbest;

end
toc
%% 结果分析
plot(yy);
title(['适应度曲线 ' '终止代数=' num2str(maxgen)]);
xlabel('进化代数');
ylabel('适应度');

fun函数如下
function y = fun(x)
y = -20*exp(-0.2*sqrt((x(1)^2+x(2)^2)/2)) - exp((cos(2*pi*x(1))+ cos(2*pi*x(2)))/2) + 20 + 2.71289;

‘柒’ 求实现基于粒子群算法的函数极值寻优算法MATLAB程序

for i=1:sizepop
% 随机产生一个种群
pop(i,:)=2*rands(1,2); % 初始化粒子
V(i,:)=0.5*rands(1,2); % 初始化速度

% 计算粒子适应度值
fitness(i)=fun(pop(i,:));
end

[bestfitness bestindex]=min(fitness);
zbest=pop(bestindex,:); % 群体极值位置
gbest=pop; % 个体极值位置
fitnessgbest=fitness; % 个体极值适应度值
fitnesszbest=bestfitness % 群体极值适应度值
% 迭代寻优
for i=1:maxgen
% 粒子位置和速度更新
for j=1:sizepop
% 速度更新
V(j,:)=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,:)+0.5*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数组中
result(i)=fitnesszbest;
end
% 画出每代最优个体适应度值
plot(result)
title('最优个体适应度值','fontsize',12);
xlabel('进化代数','fontsize',12);ylabel('适应度值','fontsize',12);

‘捌’ 粒子群(PSO)算法的matlab程序

%不知道你具体的问题是什么,下面是一个最基本的pso算法解决函数极值问题,如果是一些大型的问题,需要对速度、惯性常数、和自适应变异做进一步优化,希望对你有帮助
function y = fun(x)
y=-20*exp(-0.2*sqrt((x(1)^2+x(2)^2)/2))-exp((cos(2*pi*x(1))+cos(2*pi*x(2)))/2)+20+2.71289;
%下面是主程序
%% 清空环境
clc
clear

%% 参数初始化
%粒子群算法中的两个参数
c1 = 1.49445;
c2 = 1.49445;

maxgen=200; % 进化次数
sizepop=20; %种群规模

Vmax=1;%速度限制
Vmin=-1;
popmax=5;%种群限制
popmin=-5;

%% 产生初始粒子和速度
for i=1:sizepop
%随机产生一个种群
pop(i,:)=5*rands(1,2); %初始种群
V(i,:)=rands(1,2); %初始化速度
%计算适应度
fitness(i)=fun(pop(i,:)); %染色体的适应度
end

%找最好的染色体
[bestfitness bestindex]=min(fitness);
zbest=pop(bestindex,:); %全局最佳
gbest=pop; %个体最佳
fitnessgbest=fitness; %个体最佳适应度值
fitnesszbest=bestfitness; %全局最佳适应度值

%% 迭代寻优
for i=1:maxgen

for j=1:sizepop

%速度更新
V(j,:) = 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,:)+0.5*V(j,:);
pop(j,find(pop(j,:)>popmax))=popmax;
pop(j,find(pop(j,:)<popmin))=popmin;

%自适应变异(避免粒子群算法陷入局部最优)
if rand>0.8
k=ceil(2*rand);%ceil朝正无穷大方向取整
pop(j,k)=rand;
end

%适应度值
fitness(j)=fun(pop(j,:));

%个体最优更新
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

%% 结果分析
plot(yy)
title(['适应度曲线 ' '终止代数=' num2str(maxgen)]);
xlabel('进化代数');ylabel('适应度');
以上回答你满意么?

阅读全文

与粒子群算法matlab实例相关的资料

热点内容
dvd光盘存储汉子算法 浏览:757
苹果邮件无法连接服务器地址 浏览:963
phpffmpeg转码 浏览:672
长沙好玩的解压项目 浏览:145
专属学情分析报告是什么app 浏览:564
php工程部署 浏览:833
android全屏透明 浏览:737
阿里云服务器已开通怎么办 浏览:803
光遇为什么登录时服务器已满 浏览:302
PDF分析 浏览:486
h3c光纤全工半全工设置命令 浏览:143
公司法pdf下载 浏览:382
linuxmarkdown 浏览:350
华为手机怎么多选文件夹 浏览:683
如何取消命令方块指令 浏览:350
风翼app为什么进不去了 浏览:779
im4java压缩图片 浏览:362
数据查询网站源码 浏览:151
伊克塞尔文档怎么进行加密 浏览:893
app转账是什么 浏览:163