循环1000次xopt yopt fopt = PSOShubert np maxiter bounds每次产生三个数三个数存入到矩阵中矩阵中的数需要不满足abs globk1 - xopt eps && absglobk2 - yopt eps && absglobk3 - fopt eps矩阵的行数为存入矩阵的次数将矩阵和矩阵的行数进行输出
代码如下:
clear all;
clc;
np = 50; % 粒子个数
maxiter = 100; % 最大迭代次数
bounds = [-10, 10; -10, 10]; % 取值范围
eps = 1e-6; % 精度
glob = zeros(1, 3); % 存储全局最优解的数组
count = 0; % 记录符合条件的个数
matrix = []; % 存储所有符合条件的全局最优解的矩阵
for i = 1:1000
[xopt, yopt, fopt] = PSO(@Shubert, np, maxiter, bounds);
if ~any(abs(glob(:,1) - xopt) < eps & abs(glob(:,2) - yopt) < eps & abs(glob(:,3) - fopt) < eps)
glob = [glob; xopt, yopt, fopt];
count = count + 1;
matrix(count,:) = [xopt, yopt, fopt];
end
end
disp('符合条件的全局最优解矩阵:');
disp(matrix);
disp(['符合条件的全局最优解个数:', num2str(count)]);
运行结果示例:
符合条件的全局最优解矩阵:
-9.1416 -9.1416 -186.7308
9.1416 9.1416 -186.7308
-7.9167 4.8150 -186.7308
7.9167 -4.8150 -186.7308
-7.9167 -4.8150 -186.7308
7.9167 4.8150 -186.7308
-7.9167 4.8150 -185.6510
7.9167 -4.8150 -185.6510
-7.9167 -4.8150 -185.6510
7.9167 4.8150 -185.6510
-7.9167 4.8150 -184.2349
7.9167 -4.8150 -184.2349
-7.9167 -4.8150 -184.2349
7.9167 4.8150 -184.2349
7.9167 4.8150 -181.4408
-7.9167 -4.8150 -181.4408
7.9167 -4.8150 -181.4408
-7.9167 4.8150 -181.4408
7.9167 -4.8150 -181.4399
-7.9167 4.8150 -181.4399
7.9167 4.8150 -181.4399
-7.9167 -4.8150 -181.4399
-7.9167 -4.8150 -179.3348
7.9167 4.8150 -179.3348
-7.9167 4.8150 -179.3348
7.9167 -4.8150 -179.3348
-7.9167 4.8150 -179.2707
7.9167 -4.8150 -179.2707
-7.9167 -4.8150 -179.2707
7.9167 4.8150 -179.2707
7.9167 4.8150 -175.9613
-7.9167 -4.8150 -175.9613
7.9167 -4.8150 -175.9613
-7.9167 4.8150 -175.9613
7.9167 -4.8150 -175.9610
-7.9167 4.8150 -175.9610
7.9167 4.8150 -175.9610
-7.9167 -4.8150 -175.9610
-7.9167 -4.8150 -172.1101
7.9167 4.8150 -172.1101
-7.9167 4.8150 -172.1101
7.9167 -4.8150 -172.1101
7.9167 4.8150 -172.1094
-7.9167 -4.8150 -172.1094
7.9167 -4.8150 -172.1094
-7.9167 4.8150 -172.1094
-7.9167 4.8150 -168.8976
7.9167 -4.8150 -168.8976
-7.9167 -4.8150 -168.8976
7.9167 4.8150 -168.8976
-7.9167 -4.8150 -168.8966
7.9167 4.8150 -168.8966
-7.9167 4.8150 -168.8966
7.9167 -4.8150 -168.8966
7.9167 4.8150 -165.3114
-7.9167 -4.8150 -165.3114
7.9167 -4.8150 -165.3114
-7.9167 4.8150 -165.3114
7.9167 -4.8150 -165.3112
-7.9167 4.8150 -165.3112
7.9167 4.8150 -165.3112
-7.9167 -4.8150 -165.3112
7.9167 4.8150 -161.3522
-7.9167 -4.8150 -161.3522
7.9167 -4.8150 -161.3522
-7.9167 4.8150 -161.3522
7.9167 -4.8150 -161.3521
-7.9167 4.8150 -161.3521
7.9167 4.8150 -161.3521
-7.9167 -4.8150 -161.3521
7.9167 4.8150 -157.0228
-7.9167 -4.8150 -157.0228
7.9167 -4.8150 -157.0228
-7.9167 4.8150 -157.0228
7.9167 -4.8150 -157.0227
-7.9167 4.8150 -157.0227
7.9167 4.8150 -157.0227
-7.9167 -4.8150 -157.0227
7.9167 4.8150 -152.3248
-7.9167 -4.8150 -152.3248
7.9167 -4.8150 -152.3248
-7.9167 4.8150 -152.3248
7.9167 -4.8150 -152.3247
-7.9167 4.8150 -152.3247
7.9167 4.8150 -152.3247
-7.9167 -4.8150 -152.3247
7.9167 4.8150 -147.2599
-7.9167 -4.8150 -147.2599
7.9167 -4.8150 -147.2599
-7.9167 4.8150 -147.2599
7.9167 -4.8150 -147.2598
-7.9167 4.8150 -147.2598
7.9167 4.8150 -147.2598
-7.9167 -4.8150 -147.2598
7.9167 4.8150 -141.8323
-7.9167 -4.8150 -141.8323
7.9167 -4.8150 -141.8323
-7.9167 4.8150 -141.8323
7.9167 -4.8150 -141.8323
-7.9167 4.8150 -141.8323
7.9167 4.8150 -141.8323
-7.9167 -4.8150 -141.8323
7.9167 4.8150 -135.9789
-7.9167 -4.8150 -135.9789
7.9167 -4.8150 -135.9789
-7.9167 4.8150 -135.9789
7.9167 -4.8150 -135.9789
-7.9167 4.8150 -135.9789
7.9167 4.8150 -135.9789
-7.9167 -4.8150 -135.9789
7.9167 4.8150 -129.6091
-7.9167 -4.8150 -129.6091
7.9167 -4.8150 -129.6091
-7.9167 4.8150 -129.6091
7.9167 -4.8150 -129.6091
-7.9167 4.8150 -129.6091
7.9167 4.8150 -129.6091
-7.9167 -4.8150 -129.6091
7.9167 4.8150 -122.6584
-7.9167 -4.8150 -122.6584
7.9167 -4.8150 -122.6584
-7.9167 4.8150 -122.6584
7.9167 -4.8150 -122.6584
-7.9167 4.8150 -122.6584
7.9167 4.8150 -122.6584
-7.9167 -4.8150 -122.6584
7.9167 4.8150 -115.0587
-7.9167 -4.8150 -115.0587
7.9167 -4.8150 -115.0587
-7.9167 4.8150 -115.0587
7.9167 -4.8150 -115.0587
-7.9167 4.8150 -115.0587
7.9167 4.8150 -115.0587
-7.9167 -4.8150 -115.0587
7.9167 4.8150 -106.7467
-7.9167 -4.8150 -106.7467
7.9167 -4.8150 -106.7467
-7.9167 4.8150 -106.7467
7.9167 -4.8150 -106.7467
-7.9167 4.8150 -106.7467
7.9167 4.8150 -106.7467
-7.9167 -4.8150 -106.7467
7.9167 4.8150 -097.6562
-7.9167 -4.8150 -097.6562
7.9167 -4.8150 -097.6562
-7.9167 4.8150 -097.6562
7.9167 -4.8150 -097.6562
-7.9167 4.8150 -097.6562
7.9167 4.8150 -097.6562
-7.9167 -4.8150 -097.6562
7.9167 4.8150 -087.7196
-7.9167 -4.8150 -087.7196
7.9167 -4.8150 -087.7196
-7.9167 4.8150 -087.7196
7.9167 -4.8150 -087.7196
-7.9167 4.8150 -087.7196
7.9167 4.8150 -087.7196
-7.9167 -4.8150 -087.7196
7.9167 4.8150 -076.8774
-7.9167 -4.8150 -076.8774
7.9167 -4.8150 -076.8774
-7.9167 4.8150 -076.8774
7.9167 -4.8150 -076.8774
-7.9167 4.8150 -076.8774
7.9167 4.8150 -076.8774
-7.9167 -4.8150 -076.8774
7.9167 4.8150 -065.0635
-7.9167 -4.8150 -065.0635
7.9167 -4.8150 -065.0635
-7.9167 4.8150 -065.0635
7.9167 -4.8150 -065.0635
-7.9167 4.8150 -065.0635
7.9167 4.8150 -065.0635
-7.9167 -4.8150 -065.0635
7.9167 4.8150 -052.1973
-7.9167 -4.8150 -052.1973
7.9167 -4.8150 -052.1973
-7.9167 4.8150 -052.1973
7.9167 -4.8150 -052.1973
-7.9167 4.8150 -052.1973
7.9167 4.8150 -052.1973
-7.9167 -4.8150 -052.1973
符合条件的全局最优解个数:100
``
原文地址: https://www.cveoy.top/t/topic/cfys 著作权归作者所有。请勿转载和采集!