Matlab粒子群算法中函数或变量 'gbest' 无法识别

function apso
%变量
Lb = [0 0 0 0 0 0 0 0 0 0 0 0];
Ub = [1 1 1 1 1 1 1 1 1 1 1 1];
% 默认参数
para = [100 2000 0.95];
%APSO 优化求解函数
[gbest,fmax]=pso_mincon(@cost,@constraint,Lb,Ub,para);
%输出结果
Bestsolution = gbest;% 全局最优个体
fmax
%%目标函数
function f = cost(x)
syms z1 z2 z3 z4 z5 z6 z7 z8 z9 z10 z11 z12 z13 z14 z15 z16 z17 z18 z19 z20 z21 z22 z23 z24 z25
z1 =  ((0.5 * x(1) * x(4)) /((exp(2.19 + 1.476 * x(7) - 4.086 * x(10) + 0.01 * x(7) * x(10))) + 0.0095) * exp(2.19 + 1.476 * x(7) - 4.086 * x(10) + 0.01 * x(7) * x(10))) - ((0.5 * x(1) * x(4)) / (((exp(2.19 + 1.476 * x(7) - 4.086 * x(10) + 0.01 * x(7) * x(10))) + 0.0095)^2) * exp(2 * 2.19 + 2 * 1.476 * x(7) - 2 * 4.086 * x(10) + 2 * 0.01 * x(7) * x(10))) + ((0.5 * x(2) * x(5)) /((exp(2.19 + 1.476 * x(8) - 4.086 * x(11) + 0.01 * x(8) * x(11))) + 0.0095) * exp(2.19 + 1.476 * x(8) - 4.086 * x(11) + 0.01 * x(8) * x(11))) - ((0.5 * x(2) * x(5)) / (((exp(2.19 + 1.476 * x(8) - 4.086 * x(11) + 0.01 * x(8) * x(11))) + 0.0095)^2) * exp(2 * 2.19 + 2 * 1.476 * x(8) - 2 * 4.086 * x(11) + 2 * 0.01 * x(8) * x(11))) + ((0.5 * x(3) * x(6)) /((exp(2.19 + 1.476 * x(9) - 4.086 * x(12) + 0.01 * x(9) * x(12))) + 0.0095) * exp(2.19 + 1.476 * x(9) - 4.086 * x(12) + 0.01 * x(9) * x(12))) - ((0.5 * x(3) * x(6)) / (((exp(2.19 + 1.476 * x(9) - 4.086 * x(12) + 0.01 * x(9) * x(12))) + 0.0095)^2) * exp(2 * 2.19 + 2 * 1.476 * x(9) - 2 * 4.086 * x(12) + 2 * 0.01 * x(9) * x(12)));
z2 =  ((0.5 * x(1) * x(4)) /((exp(2.19 + 1.476 * x(7) - 4.086 * x(10) + 0.01 * x(7) * x(10))) + 0.0095) * x(7) * exp(2.19 + 1.476 * x(7) - 4.086 * x(10) + 0.01 * x(7) * x(10))) - ((0.5 * x(1) * x(4)) / (((exp(2.19 + 1.476 * x(7) - 4.086 * x(10) + 0.01 * x(7) * x(10))) + 0.0095)^2) * x(7) * exp(2 * 2.19 + 2 * 1.476 * x(7) - 2 * 4.086 * x(10) + 2 * 0.01 * x(7) * x(10))) + ((0.5 * x(2) * x(5)) /((exp(2.19 + 1.476 * x(8) - 4.086 * x(11) + 0.01 * x(8) * x(11))) + 0.0095) * x(8) * exp(2.19 + 1.476 * x(8) - 4.086 * x(11) + 0.01 * x(8) * x(11))) - ((0.5 * x(2) * x(5)) / (((exp(2.19 + 1.476 * x(8) - 4.086 * x(11) + 0.01 * x(8) * x(11))) + 0.0095)^2) * x(8) * exp(2 * 2.19 + 2 * 1.476 * x(8) - 2 * 4.086 * x(11) + 2 * 0.01 * x(8) * x(11))) + ((0.5 * x(3) * x(6)) /((exp(2.19 + 1.476 * x(9) - 4.086 * x(12) + 0.01 * x(9) * x(12))) + 0.0095) * x(9) * exp(2.19 + 1.476 * x(9) - 4.086 * x(12) + 0.01 * x(9) * x(12))) - ((0.5 * x(3) * x(6)) / (((exp(2.19 + 1.476 * x(9) - 4.086 * x(12) + 0.01 * x(9) * x(12))) + 0.0095)^2) * x(9) * exp(2 * 2.19 + 2 * 1.476 * x(9) - 2 * 4.086 * x(12) + 2 * 0.01 * x(9) * x(12)));
z3 =  ((0.5 * x(1) * x(4)) /((exp(2.19 + 1.476 * x(7) - 4.086 * x(10) + 0.01 * x(7) * x(10))) + 0.0095) * x(10) * exp(2.19 + 1.476 * x(7) - 4.086 * x(10) + 0.01 * x(7) * x(10))) - ((0.5 * x(1) * x(4)) / (((exp(2.19 + 1.476 * x(7) - 4.086 * x(10) + 0.01 * x(7) * x(10))) + 0.0095)^2) * x(10) * exp(2 * 2.19 + 2 * 1.476 * x(7) - 2 * 4.086 * x(10) + 2 * 0.01 * x(7) * x(10))) + ((0.5 * x(2) * x(5)) /((exp(2.19 + 1.476 * x(8) - 4.086 * x(11) + 0.01 * x(8) * x(11))) + 0.0095) * x(11) * exp(2.19 + 1.476 * x(8) - 4.086 * x(11) + 0.01 * x(8) * x(11))) - ((0.5 * x(2) * x(5)) / (((exp(2.19 + 1.476 * x(8) - 4.086 * x(11) + 0.01 * x(8) * x(11))) + 0.0095)^2) * x(11) * exp(2 * 2.19 + 2 * 1.476 * x(8) - 2 * 4.086 * x(11) + 2 * 0.01 * x(8) * x(11))) + ((0.5 * x(3) * x(6)) /((exp(2.19 + 1.476 * x(9) - 4.086 * x(12) + 0.01 * x(9) * x(12))) + 0.0095) * x(12) * exp(2.19 + 1.476 * x(9) - 4.086 * x(12) + 0.01 * x(9) * x(12))) - ((0.5 * x(3) * x(6)) / (((exp(2.19 + 1.476 * x(9) - 4.086 * x(12) + 0.01 * x(9) * x(12))) + 0.0095)^2) * x(12) * exp(2 * 2.19 + 2 * 1.476 * x(9) - 2 * 4.086 * x(12) + 2 * 0.01 * x(9) * x(12)));
z4 =  ((0.5 * x(1) * x(4)) /((exp(2.19 + 1.476 * x(7) - 4.086 * x(10) + 0.01 * x(7) * x(10))) + 0.0095) * x(7) * x(10) * exp(2.19 + 1.476 * x(7) - 4.086 * x(10) + 0.01 * x(7) * x(10))) - ((0.5 * x(1) * x(4)) / (((exp(2.19 + 1.476 * x(7) - 4.086 * x(10) + 0.01 * x(7) * x(10))) + 0.0095)^2) * x(7) * x(10) * exp(2 * 2.19 + 2 * 1.476 * x(7) - 2 * 4.086 * x(10) + 2 * 0.01 * x(7) * x(10))) + ((0.5 * x(2) * x(5)) /((exp(2.19 + 1.476 * x(8) - 4.086 * x(11) + 0.01 * x(8) * x(11))) + 0.0095) * x(8) * x(11) * exp(2.19 + 1.476 * x(8) - 4.086 * x(11) + 0.01 * x(8) * x(11))) - ((0.5 * x(2) * x(5)) / (((exp(2.19 + 1.476 * x(8) - 4.086 * x(11) + 0.01 * x(8) * x(11))) + 0.0095)^2) * x(8) * x(11) * exp(2 * 2.19 + 2 * 1.476 * x(8) - 2 * 4.086 * x(11) + 2 * 0.01 * x(8) * x(11))) + ((0.5 * x(3) * x(6)) /((exp(2.19 + 1.476 * x(9) - 4.086 * x(12) + 0.01 * x(9) * x(12))) + 0.0095) * x(9) * x(12) * exp(2.19 + 1.476 * x(9) - 4.086 * x(12) + 0.01 * x(9) * x(12))) - ((0.5 * x(3) * x(6)) / (((exp(2.19 + 1.476 * x(9) - 4.086 * x(12) + 0.01 * x(9) * x(12))) + 0.0095)^2) * x(9) * x(12) * exp(2 * 2.19 + 2 * 1.476 * x(9) - 2 * 4.086 * x(12) + 2 * 0.01 * x(9) * x(12)));
z5 =  ((-0.5 * x(1) * x(4)) / (((exp(2.19 + 1.476 * x(7) - 4.086 * x(10) + 0.01 * x(7) * x(10))) + 0.0095)^2) * exp(2.19 + 1.476 * x(7) - 4.086 * x(10) + 0.01 * x(7) * x(10))) + ((-0.5 * x(2) * x(5)) / (((exp(2.19 + 1.476 * x(8) - 4.086 * x(11) + 0.01 * x(8) * x(11))) + 0.0095)^2) * exp(2 * 2.19 + 2 * 1.476 * x(8) - 2 * 4.086 * x(11) + 2 * 0.01 * x(8) * x(11))) + ((-0.5 * x(3) * x(6)) / (((exp(2.19 + 1.476 * x(9) - 4.086 * x(12) + 0.01 * x(9) * x(12))) + 0.0095)^2) * exp(2.19 + 1.476 * x(9) - 4.086 * x(12) + 0.01 * x(9) * x(12)));
z6 =  ((0.5 * x(1) * x(4)) /((exp(2.19 + 1.476 * x(7) - 4.086 * x(10) + 0.01 * x(7) * x(10))) + 0.0095) * x(7) * exp(2.19 + 1.476 * x(7) - 4.086 * x(10) + 0.01 * x(7) * x(10))) - ((0.5 * x(1) * x(4)) / (((exp(2.19 + 1.476 * x(7) - 4.086 * x(10) + 0.01 * x(7) * x(10))) + 0.0095)^2) * x(7) * exp(2 * 2.19 + 2 * 1.476 * x(7) - 2 * 4.086 * x(10) + 2 * 0.01 * x(7) * x(10))) + ((0.5 * x(2) * x(5)) /((exp(2.19 + 1.476 * x(8) - 4.086 * x(11) + 0.01 * x(8) * x(11))) + 0.0095) * x(8) * exp(2.19 + 1.476 * x(8) - 4.086 * x(11) + 0.01 * x(8) * x(11))) - ((0.5 * x(2) * x(5)) / (((exp(2.19 + 1.476 * x(8) - 4.086 * x(11) + 0.01 * x(8) * x(11))) + 0.0095)^2) * x(8) * exp(2 * 2.19 + 2 * 1.476 * x(8) - 2 * 4.086 * x(11) + 2 * 0.01 * x(8) * x(11))) + ((0.5 * x(3) * x(6)) /((exp(2.19 + 1.476 * x(9) - 4.086 * x(12) + 0.01 * x(9) * x(12))) + 0.0095) * x(9) * exp(2.19 + 1.476 * x(9) - 4.086 * x(12) + 0.01 * x(9) * x(12))) - ((0.5 * x(3) * x(6)) / (((exp(2.19 + 1.476 * x(9) - 4.086 * x(12) + 0.01 * x(9) * x(12))) + 0.0095)^2) * x(9) * exp(2 * 2.19 + 2 * 1.476 * x(9) - 2 * 4.086 * x(12) + 2 * 0.01 * x(9) * x(12)));
z7 =  ((0.5 * x(1) * x(4)) /((exp(2.19 + 1.476 * x(7) - 4.086 * x(10) + 0.01 * x(7) * x(10))) + 0.0095) * (x(7)^2) * exp(2.19 + 1.476 * x(7) - 4.086 * x(10) + 0.01 * x(7) * x(10))) - ((0.5 * x(1) * x(4)) / (((exp(2.19 + 1.476 * x(7) - 4.086 * x(10) + 0.01 * x(7) * x(10))) + 0.0095)^2) * (x(7)^2) * exp(2 * 2.19 + 2 * 1.476 * x(7) - 2 * 4.086 * x(10) + 2 * 0.01 * x(7) * x(10))) + ((0.5 * x(2) * x(5)) /((exp(2.19 + 1.476 * x(8) - 4.086 * x(11) + 0.01 * x(8) * x(11))) + 0.0095) * (x(8)^2) * exp(2.19 + 1.476 * x(8) - 4.086 * x(11) + 0.01 * x(8) * x(11))) - ((0.5 * x(2) * x(5)) / (((exp(2.19 + 1.476 * x(8) - 4.086 * x(11) + 0.01 * x(8) * x(11))) + 0.0095)^2) * (x(8)^2) * exp(2 * 2.19 + 2 * 1.476 * x(8) - 2 * 4.086 * x(11) + 2 * 0.01 * x(8) * x(11))) + ((0.5 * x(3) * x(6)) /((exp(2.19 + 1.476 * x(9) - 4.086 * x(12) + 0.01 * x(9) * x(12))) + 0.0095) * (x(9)^2) * exp(2.19 + 1.476 * x(9) - 4.086 * x(12) + 0.01 * x(9) * x(12))) - ((0.5 * x(3) * x(6)) / (((exp(2.19 + 1.476 * x(9) - 4.086 * x(12) + 0.01 * x(9) * x(12))) + 0.0095)^2) * (x(9)^2) * exp(2 * 2.19 + 2 * 1.476 * x(9) - 2 * 4.086 * x(12) + 2 * 0.01 * x(9) * x(12)));
z8 =  ((0.5 * x(1) * x(4)) /((exp(2.19 + 1.476 * x(7) - 4.086 * x(10) + 0.01 * x(7) * x(10))) + 0.0095) * x(7)* x(10) * exp(2.19 + 1.476 * x(7) - 4.086 * x(10) + 0.01 * x(7) * x(10))) - ((0.5 * x(1) * x(4)) / (((exp(2.19 + 1.476 * x(7) - 4.086 * x(10) + 0.01 * x(7) * x(10))) + 0.0095)^2) * x(7) * x(10) * exp(2 * 2.19 + 2 * 1.476 * x(7) - 2 * 4.086 * x(10) + 2 * 0.01 * x(7) * x(10))) + ((0.5 * x(2) * x(5)) /((exp(2.19 + 1.476 * x(8) - 4.086 * x(11) + 0.01 * x(8) * x(11))) + 0.0095) * x(8) * x(11) * exp(2.19 + 1.476 * x(8) - 4.086 * x(11) + 0.01 * x(8) * x(11))) - ((0.5 * x(2) * x(5)) / (((exp(2.19 + 1.476 * x(8) - 4.086 * x(11) + 0.01 * x(8) * x(11))) + 0.0095)^2) * x(8) * x(11) * exp(2 * 2.19 + 2 * 1.476 * x(8) - 2 * 4.086 * x(11) + 2 * 0.01 * x(8) * x(11))) + ((0.5 * x(3) * x(6)) /((exp(2.19 + 1.476 * x(9) - 4.086 * x(12) + 0.01 * x(9) * x(12))) + 0.0095) * x(9) * x(12) * exp(2.19 + 1.476 * x(9) - 4.086 * x(12) + 0.01 * x(9) * x(12))) - ((0.5 * x(3) * x(6)) / (((exp(2.19 + 1.476 * x(9) - 4.086 * x(12) + 0.01 * x(9) * x(12))) + 0.0095)^2) * x(9) * x(12) * exp(2 * 2.19 + 2 * 1.476 * x(9) - 2 * 4.086 * x(12) + 2 * 0.01 * x(9) * x(12)));
z9 =  ((0.5 * x(1) * x(4)) /((exp(2.19 + 1.476 * x(7) - 4.086 * x(10) + 0.01 * x(7) * x(10))) + 0.0095) * (x(7)^2) * x(10) * exp(2.19 + 1.476 * x(7) - 4.086 * x(10) + 0.01 * x(7) * x(10))) - ((0.5 * x(1) * x(4)) / (((exp(2.19 + 1.476 * x(7) - 4.086 * x(10) + 0.01 * x(7) * x(10))) + 0.0095)^2) * (x(7)^2) * x(10) * exp(2 * 2.19 + 2 * 1.476 * x(7) - 2 * 4.086 * x(10) + 2 * 0.01 * x(7) * x(10))) + ((0.5 * x(2) * x(5)) /((exp(2.19 + 1.476 * x(8) - 4.086 * x(11) + 0.01 * x(8) * x(11))) + 0.0095) * (x(8)^2) * x(11) * exp(2.19 + 1.476 * x(8) - 4.086 * x(11) + 0.01 * x(8) * x(11))) - ((0.5 * x(2) * x(5)) / (((exp(2.19 + 1.476 * x(8) - 4.086 * x(11) + 0.01 * x(8) * x(11))) + 0.0095)^2) * (x(8)^2) * x(11) * exp(2 * 2.19 + 2 * 1.476 * x(8) - 2 * 4.086 * x(11) + 2 * 0.01 * x(8) * x(11))) + ((0.5 * x(3) * x(6)) /((exp(2.19 + 1.476 * x(9) - 4.086 * x(12) + 0.01 * x(9) * x(12))) + 0.0095) * (x(9)^2) * x(12) * exp(2.19 + 1.476 * x(9) - 4.086 * x(12) + 0.01 * x(9) * x(12))) - ((0.5 * x(3) * x(6)) / (((exp(2.19 + 1.476 * x(9) - 4.086 * x(12) + 0.01 * x(9) * x(12))) + 0.0095)^2) * (x(9)^2) * x(12) * exp(2 * 2.19 + 2 * 1.476 * x(9) - 2 * 4.086 * x(12) + 2 * 0.01 * x(9) * x(12)));
z10 =  ((-0.5 * x(1) * x(4)) / (((exp(2.19 + 1.476 * x(7) - 4.086 * x(10) + 0.01 * x(7) * x(10))) + 0.0095)^2) * x(7) * exp(2.19 + 1.476 * x(7) - 4.086 * x(10) + 0.01 * x(7) * x(10))) + ((-0.5 * x(2) * x(5)) / (((exp(2.19 + 1.476 * x(8) - 4.086 * x(11) + 0.01 * x(8) * x(11))) + 0.0095)^2) * x(8) * exp(2 * 2.19 + 2 * 1.476 * x(8) - 2 * 4.086 * x(11) + 2 * 0.01 * x(8) * x(11))) + ((-0.5 * x(3) * x(6)) / (((exp(2.19 + 1.476 * x(9) - 4.086 * x(12) + 0.01 * x(9) * x(12))) + 0.0095)^2) * x(9) * exp(2.19 + 1.476 * x(9) - 4.086 * x(12) + 0.01 * x(9) * x(12)));
z11 =  ((0.5 * x(1) * x(4)) /((exp(2.19 + 1.476 * x(7) - 4.086 * x(10) + 0.01 * x(7) * x(10))) + 0.0095) * x(10) * exp(2.19 + 1.476 * x(7) - 4.086 * x(10) + 0.01 * x(7) * x(10))) - ((0.5 * x(1) * x(4)) / (((exp(2.19 + 1.476 * x(7) - 4.086 * x(10) + 0.01 * x(7) * x(10))) + 0.0095)^2) * x(10) * exp(2 * 2.19 + 2 * 1.476 * x(7) - 2 * 4.086 * x(10) + 2 * 0.01 * x(7) * x(10))) + ((0.5 * x(2) * x(5)) /((exp(2.19 + 1.476 * x(8) - 4.086 * x(11) + 0.01 * x(8) * x(11))) + 0.0095) * x(11) * exp(2.19 + 1.476 * x(8) - 4.086 * x(11) + 0.01 * x(8) * x(11))) - ((0.5 * x(2) * x(5)) / (((exp(2.19 + 1.476 * x(8) - 4.086 * x(11) + 0.01 * x(8) * x(11))) + 0.0095)^2) * x(11) * exp(2 * 2.19 + 2 * 1.476 * x(8) - 2 * 4.086 * x(11) + 2 * 0.01 * x(8) * x(11))) + ((0.5 * x(3) * x(6)) /((exp(2.19 + 1.476 * x(9) - 4.086 * x(12) + 0.01 * x(9) * x(12))) + 0.0095) * x(12) * exp(2.19 + 1.476 * x(9) - 4.086 * x(12) + 0.01 * x(9) * x(12))) - ((0.5 * x(3) * x(6)) / (((exp(2.19 + 1.476 * x(9) - 4.086 * x(12) + 0.01 * x(9) * x(12))) + 0.0095)^2) * x(12) * exp(2 * 2.19 + 2 * 1.476 * x(9) - 2 * 4.086 * x(12) + 2 * 0.01 * x(9) * x(12)));
z12 =  ((0.5 * x(1) * x(4)) /((exp(2.19 + 1.476 * x(7) - 4.086 * x(10) + 0.01 * x(7) * x(10))) + 0.0095) * x(7) * x(10) * exp(2.19 + 1.476 * x(7) - 4.086 * x(10) + 0.01 * x(7) * x(10))) - ((0.5 * x(1) * x(4)) / (((exp(2.19 + 1.476 * x(7) - 4.086 * x(10) + 0.01 * x(7) * x(10))) + 0.0095)^2) * x(7) * x(10) * exp(2 * 2.19 + 2 * 1.476 * x(7) - 2 * 4.086 * x(10) + 2 * 0.01 * x(7) * x(10))) + ((0.5 * x(2) * x(5)) /((exp(2.19 + 1.476 * x(8) - 4.086 * x(11) + 0.01 * x(8) * x(11))) + 0.0095) * x(8) * x(11) * exp(2.19 + 1.476 * x(8) - 4.086 * x(11) + 0.01 * x(8) * x(11))) - ((0.5 * x(2) * x(5)) / (((exp(2.19 + 1.476 * x(8) - 4.086 * x(11) + 0.01 * x(8) * x(11))) + 0.0095)^2) * x(8) * x(11) * exp(2 * 2.19 + 2 * 1.476 * x(8) - 2 * 4.086 * x(11) + 2 * 0.01 * x(8) * x(11))) + ((0.5 * x(3) * x(6)) /((exp(2.19 + 1.476 * x(9) - 4.086 * x(12) + 0.01 * x(9) * x(12))) + 0.0095) * x(9) * x(12) * exp(2.19 + 1.476 * x(9) - 4.086 * x(12) + 0.01 * x(9) * x(12))) - ((0.5 * x(3) * x(6)) / (((exp(2.19 + 1.476 * x(9) - 4.086 * x(12) + 0.01 * x(9) * x(12))) + 0.0095)^2) * x(9) * x(12) * exp(2 * 2.19 + 2 * 1.476 * x(9) - 2 * 4.086 * x(12) + 2 * 0.01 * x(9) * x(12)));
z13 =  ((0.5 * x(1) * x(4)) /((exp(2.19 + 1.476 * x(7) - 4.086 * x(10) + 0.01 * x(7) * x(10))) + 0.0095) * (x(10)^2) * exp(2.19 + 1.476 * x(7) - 4.086 * x(10) + 0.01 * x(7) * x(10))) - ((0.5 * x(1) * x(4)) / (((exp(2.19 + 1.476 * x(7) - 4.086 * x(10) + 0.01 * x(7) * x(10))) + 0.0095)^2) * (x(10)^2) * exp(2 * 2.19 + 2 * 1.476 * x(7) - 2 * 4.086 * x(10) + 2 * 0.01 * x(7) * x(10))) + ((0.5 * x(2) * x(5)) /((exp(2.19 + 1.476 * x(8) - 4.086 * x(11) + 0.01 * x(8) * x(11))) + 0.0095) * (x(11)^2) * exp(2.19 + 1.476 * x(8) - 4.086 * x(11) + 0.01 * x(8) * x(11))) - ((0.5 * x(2) * x(5)) / (((exp(2.19 + 1.476 * x(8) - 4.086 * x(11) + 0.01 * x(8) * x(11))) + 0.0095)^2) * (x(11)^2) * exp(2 * 2.19 + 2 * 1.476 * x(8) - 2 * 4.086 * x(11) + 2 * 0.01 * x(8) * x(11))) + ((0.5 * x(3) * x(6)) /((exp(2.19 + 1.476 * x(9) - 4.086 * x(12) + 0.01 * x(9) * x(12))) + 0.0095) * (x(12)^2) * exp(2.19 + 1.476 * x(9) - 4.086 * x(12) + 0.01 * x(9) * x(12))) - ((0.5 * x(3) * x(6)) / (((exp(2.19 + 1.476 * x(9) - 4.086 * x(12) + 0.01 * x(9) * x(12))) + 0.0095)^2) * (x(12)^2) * exp(2 * 2.19 + 2 * 1.476 * x(9) - 2 * 4.086 * x(12) + 2 * 0.01 * x(9) * x(12)));
z14 =  ((0.5 * x(1) * x(4)) /((exp(2.19 + 1.476 * x(7) - 4.086 * x(10) + 0.01 * x(7) * x(10))) + 0.0095) * x(7) * (x(10)^2) * exp(2.19 + 1.476 * x(7) - 4.086 * x(10) + 0.01 * x(7) * x(10))) - ((0.5 * x(1) * x(4)) / (((exp(2.19 + 1.476 * x(7) - 4.086 * x(10) + 0.01 * x(7) * x(10))) + 0.0095)^2) * x(7) * (x(10)^2) * exp(2 * 2.19 + 2 * 1.476 * x(7) - 2 * 4.086 * x(10) + 2 * 0.01 * x(7) * x(10))) + ((0.5 * x(2) * x(5)) /((exp(2.19 + 1.476 * x(8) - 4.086 * x(11) + 0.01 * x(8) * x(11))) + 0.0095) * x(8) * (x(11)^2) * exp(2.19 + 1.476 * x(8) - 4.086 * x(11) + 0.01 * x(8) * x(11))) - ((0.5 * x(2) * x(5)) / (((exp(2.19 + 1.476 * x(8) - 4.086 * x(11) + 0.01 * x(8) * x(11))) + 0.0095)^2) * x(8) * (x(11)^2) * exp(2 * 2.19 + 2 * 1.476 * x(8) - 2 * 4.086 * x(11) + 2 * 0.01 * x(8) * x(11))) + ((0.5 * x(3) * x(6)) /((exp(2.19 + 1.476 * x(9) - 4.086 * x(12) + 0.01 * x(9) * x(12))) + 0.0095) * x(9) * (x(12)^2) * exp(2.19 + 1.476 * x(9) - 4.086 * x(12) + 0.01 * x(9) * x(12))) - ((0.5 * x(3) * x(6)) / (((exp(2.19 + 1.476 * x(9) - 4.086 * x(12) + 0.01 * x(9) * x(12))) + 0.0095)^2) * x(9) * (x(12)^2) * exp(2 * 2.19 + 2 * 1.476 * x(9) - 2 * 4.086 * x(12) + 2 * 0.01 * x(9) * x(12)));
z15 =  ((-0.5 * x(1) * x(4)) / (((exp(2.19 + 1.476 * x(7) - 4.086 * x(10) + 0.01 * x(7) * x(10))) + 0.0095)^2) * x(10) * exp(2.19 + 1.476 * x(7) - 4.086 * x(10) + 0.01 * x(7) * x(10))) + ((-0.5 * x(2) * x(5)) / (((exp(2.19 + 1.476 * x(8) - 4.086 * x(11) + 0.01 * x(8) * x(11))) + 0.0095)^2) * x(11) * exp(2 * 2.19 + 2 * 1.476 * x(8) - 2 * 4.086 * x(11) + 2 * 0.01 * x(8) * x(11))) + ((-0.5 * x(3) * x(6)) / (((exp(2.19 + 1.476 * x(9) - 4.086 * x(12) + 0.01 * x(9) * x(12))) + 0.0095)^2) * x(12) * exp(2.19 + 1.476 * x(9) - 4.086 * x(12) + 0.01 * x(9) * x(12)));
z16 =  ((0.5 * x(1) * x(4)) /((exp(2.19 + 1.476 * x(7) - 4.086 * x(10) + 0.01 * x(7) * x(10))) + 0.0095) * x(7) * x(10) * exp(2.19 + 1.476 * x(7) - 4.086 * x(10) + 0.01 * x(7) * x(10))) - ((0.5 * x(1) * x(4)) / (((exp(2.19 + 1.476 * x(7) - 4.086 * x(10) + 0.01 * x(7) * x(10))) + 0.0095)^2) * x(7) * x(10) * exp(2 * 2.19 + 2 * 1.476 * x(7) - 2 * 4.086 * x(10) + 2 * 0.01 * x(7) * x(10))) + ((0.5 * x(2) * x(5)) /((exp(2.19 + 1.476 * x(8) - 4.086 * x(11) + 0.01 * x(8) * x(11))) + 0.0095) * x(8) * x(11) * exp(2.19 + 1.476 * x(8) - 4.086 * x(11) + 0.01 * x(8) * x(11))) - ((0.5 * x(2) * x(5)) / (((exp(2.19 + 1.476 * x(8) - 4.086 * x(11) + 0.01 * x(8) * x(11))) + 0.0095)^2) * x(8) * x(11) * exp(2 * 2.19 + 2 * 1.476 * x(8) - 2 * 4.086 * x(11) + 2 * 0.01 * x(8) * x(11))) + ((0.5 * x(3) * x(6)) /((exp(22.19 + 1.476 * x(9) - 4.086 * x(12) + 0.01 * x(9) * x(12))) + 0.0095) * x(9) * x(12) * exp(2.19 + 1.476 * x(9) - 4.086 * x(12) + 0.01 * x(9) * x(12))) - ((0.5 * x(3) * x(6)) / (((exp(2.19 + 1.476 * x(9) - 4.086 * x(12) + 0.01 * x(9) * x(12))) + 0.0095)^2) * x(9) * x(12) * exp(2 * 2.19 + 2 * 1.476 * x(9) - 2 * 4.086 * x(12) + 2 * 0.01 * x(9) * x(12)));
z17 =  ((0.5 * x(1) * x(4)) /((exp(2.19 + 1.476 * x(7) - 4.086 * x(10) + 0.01 * x(7) * x(10))) + 0.0095) * (x(7)^2) * x(10) * exp(2.19 + 1.476 * x(7) - 4.086 * x(10) + 0.01 * x(7) * x(10))) - ((0.5 * x(1) * x(4)) / (((exp(2.19 + 1.476 * x(7) - 4.086 * x(10) + 0.01 * x(7) * x(10))) + 0.0095)^2) * (x(7)^2) * x(10) * exp(2 * 2.19 + 2 * 1.476 * x(7) - 2 * 4.086 * x(10) + 2 * 0.01 * x(7) * x(10))) + ((0.5 * x(2) * x(5)) /((exp(2.19 + 1.476 * x(8) - 4.086 * x(11) + 0.01 * x(8) * x(11))) + 0.0095) * (x(8)^2) * x(11) * exp(2.19 + 1.476 * x(8) - 4.086 * x(11) + 0.01 * x(8) * x(11))) - ((0.5 * x(2) * x(5)) / (((exp(2.19 + 1.476 * x(8) - 4.086 * x(11) + 0.01 * x(8) * x(11))) + 0.0095)^2) * (x(8)^2) * x(11) * exp(2 * 2.19 + 2 * 1.476 * x(8) - 2 * 4.086 * x(11) + 2 * 0.01 * x(8) * x(11))) + ((0.5 * x(3) * x(6)) /((exp(2.19 + 1.476 * x(9) - 4.086 * x(12) + 0.01 * x(9) * x(12))) + 0.0095) * (x(9)^2) * x(12) * exp(2.19 + 1.476 * x(9) - 4.086 * x(12) + 0.01 * x(9) * x(12))) - ((0.5 * x(3) * x(6)) / (((exp(2.19 + 1.476 * x(9) - 4.086 * x(12) + 0.01 * x(9) * x(12))) + 0.0095)^2) * (x(9)^2) * x(12) * exp(2 * 2.19 + 2 * 1.476 * x(9) - 2 * 4.086 * x(12) + 2 * 0.01 * x(9) * x(12)));
z18 =  ((0.5 * x(1) * x(4)) /((exp(2.19 + 1.476 * x(7) - 4.086 * x(10) + 0.01 * x(7) * x(10))) + 0.0095) * x(7) * (x(10)^2) * exp(2.19 + 1.476 * x(7) - 4.086 * x(10) + 0.01 * x(7) * x(10))) - ((0.5 * x(1) * x(4)) / (((exp(2.19 + 1.476 * x(7) - 4.086 * x(10) + 0.01 * x(7) * x(10))) + 0.0095)^2) * x(7) * (x(10)^2) * exp(2 * 2.19 + 2 * 1.476 * x(7) - 2 * 4.086 * x(10) + 2 * 0.01 * x(7) * x(10))) + ((0.5 * x(2) * x(5)) /((exp(2.19 + 1.476 * x(8) - 4.086 * x(11) + 0.01 * x(8) * x(11))) + 0.0095) * x(8) * (x(11)^2) * exp(2.19 + 1.476 * x(8) - 4.086 * x(11) + 0.01 * x(8) * x(11))) - ((0.5 * x(2) * x(5)) / (((exp(2.19 + 1.476 * x(8) - 4.086 * x(11) + 0.01 * x(8) * x(11))) + 0.0095)^2) * x(8) * (x(11)^2) * exp(2 * 2.19 + 2 * 1.476 * x(8) - 2 * 4.086 * x(11) + 2 * 0.01 * x(8) * x(11))) + ((0.5 * x(3) * x(6)) /((exp(2.19 + 1.476 * x(9) - 4.086 * x(12) + 0.01 * x(9) * x(12))) + 0.0095) * x(9) * (x(12)^2) * exp(2.19 + 1.476 * x(9) - 4.086 * x(12) + 0.01 * x(9) * x(12))) - ((0.5 * x(3) * x(6)) / (((exp(2.19 + 1.476 * x(9) - 4.086 * x(12) + 0.01 * x(9) * x(12))) + 0.0095)^2) * x(9) * (x(12)^2) * exp(2 * 2.19 + 2 * 1.476 * x(9) - 2 * 4.086 * x(12) + 2 * 0.01 * x(9) * x(12)));
z19 =  ((0.5 * x(1) * x(4)) /((exp(2.19 + 1.476 * x(7) - 4.086 * x(10) + 0.01 * x(7) * x(10))) + 0.0095) * (x(7)^2) * (x(10)^2) * exp(2.19 + 1.476 * x(7) - 4.086 * x(10) + 0.01 * x(7) * x(10))) - ((0.5 * x(1) * x(4)) / (((exp(2.19 + 1.476 * x(7) - 4.086 * x(10) + 0.01 * x(7) * x(10))) + 0.0095)^2) * (x(7)^2) * (x(10)^2) * exp(2 * 2.19 + 2 * 1.476 * x(7) - 2 * 4.086 * x(10) + 2 * 0.01 * x(7) * x(10))) + ((0.5 * x(2) * x(5)) /((exp(2.19 + 1.476 * x(8) - 4.086 * x(11) + 0.01 * x(8) * x(11))) + 0.0095) * (x(8)^2) * (x(11)^2) * exp(2.19 + 1.476 * x(8) - 4.086 * x(11) + 0.01 * x(8) * x(11))) - ((0.5 * x(2) * x(5)) / (((exp(2.19 + 1.476 * x(8) - 4.086 * x(11) + 0.01 * x(8) * x(11))) + 0.0095)^2) * (x(8)^2) * (x(11)^2) * exp(2 * 2.19 + 2 * 1.476 * x(8) - 2 * 4.086 * x(11) + 2 * 0.01 * x(8) * x(11))) + ((0.5 * x(3) * x(6)) /((exp(2.19 + 1.476 * x(9) - 4.086 * x(12) + 0.01 * x(9) * x(12))) + 0.0095) * (x(9)^2) * (x(12)^2) * exp(2.19 + 1.476 * x(9) - 4.086 * x(12) + 0.01 * x(9) * x(12))) - ((0.5 * x(3) * x(6)) / (((exp(2.19 + 1.476 * x(9) - 4.086 * x(12) + 0.01 * x(9) * x(12))) + 0.0095)^2) * (x(9)^2) * (x(12)^2) * exp(2 * 2.19 + 2 * 1.476 * x(9) - 2 * 4.086 * x(12) + 2 * 0.01 * x(9) * x(12)));
z20 =  ((-0.5 * x(1) * x(4)) / (((exp(2.19 + 1.476 * x(7) - 4.086 * x(10) + 0.01 * x(9) * x(10))) + 0.0095)^2) * x(7) * x(10) * exp(2.19 + 1.476 * x(7) - 4.086 * x(10) + 0.01 * x(7) * x(10))) + ((-0.5 * x(2) * x(5)) / (((exp(2.19 + 1.476 * x(8) - 4.086 * x(11) + 0.01 * x(8) * x(11))) + 0.0095)^2) * x(8) * x(11) * exp(2 * 2.19 + 2 * 1.476 * x(8) - 2 * 4.086 * x(11) + 2 * 0.01 * x(8) * x(11))) + ((-0.5 * x(3) * x(6)) / (((exp(2.19 + 1.476 * x(9) - 4.086 * x(12) + 0.01 * x(9) * x(12))) + 0.0095)^2) * x(9) * x(12) * exp(2.19 + 1.476 * x(9) - 4.086 * x(12) + 0.01 * x(9) * x(12)));
z21 =  ((-0.5 * x(1) * x(4)) / (((exp(2.19 + 1.476 * x(7) - 4.086 * x(10) + 0.01 * x(7) * x(10))) + 0.0095)^2) * exp(2.19 + 1.476 * x(7) - 4.086 * x(10) + 0.01 * x(7) * x(10))) + ((-0.5 * x(2) * x(5)) / (((exp(2.19 + 1.476 * x(8) - 4.086 * x(11) + 0.01 * x(8) * x(11))) + 0.0095)^2) * exp(2 * 2.19 + 2 * 1.476 * x(8) - 2 * 4.086 * x(11) + 2 * 0.01 * x(8) * x(11))) + ((-0.5 * x(3) * x(6)) / (((exp(2.19 + 1.476 * x(9) - 4.086 * x(12) + 0.01 * x(9) * x(12))) + 0.0095)^2) * exp(2.19 + 1.476 * x(9) - 4.086 * x(12) + 0.01 * x(9) * x(12)));
z22 =  ((-0.5 * x(1) * x(4)) / (((exp(2.19 + 1.476 * x(7) - 4.086 * x(10) + 0.01 * x(7) * x(10))) + 0.0095)^2) * x(7) * exp(2.19 + 1.476 * x(7) - 4.086 * x(10) + 0.01 * x(7) * x(10))) + ((-0.5 * x(2) * x(5)) / (((exp(2.19 + 1.476 * x(8) - 4.086 * x(11) + 0.01 * x(8) * x(11))) + 0.0095)^2) * x(8) * exp(2 * 2.19 + 2 * 1.476 * x(8) - 2 * 4.086 * x(11) + 2 * 0.01 * x(8) * x(11))) + ((-0.5 * x(3) * x(6)) / (((exp(2.19 + 1.476 * x(9) - 4.086 * x(12) + 0.01 * x(9) * x(12))) + 0.0095)^2) * x(9) * exp(2.19 + 1.476 * x(9) - 4.086 * x(12) + 0.01 * x(9) * x(12)));
z23 =  ((-0.5 * x(1) * x(4)) / (((exp(2.19 + 1.476 * x(7) - 4.086 * x(10) + 0.01 * x(7) * x(10))) + 0.0095)^2) * x(10) * exp(2.19 + 1.476 * x(7) - 4.086 * x(10) + 0.01 * x(7) * x(10))) + ((-0.5 * x(2) * x(5)) / (((exp(2.19 + 1.476 * x(8) - 4.086 * x(11) + 0.01 * x(8) * x(11))) + 0.0095)^2) * x(11) * exp(2 * 2.19 + 2 * 1.476 * x(8) - 2 * 4.086 * x(11) + 2 * 0.01 * x(8) * x(11))) + ((-0.5 * x(3) * x(6)) / (((exp(2.19 + 1.476 * x(9) - 4.086 * x(12) + 0.01 * x(9) * x(12))) + 0.0095)^2) * x(12) * exp(2.19 + 1.476 * x(9) - 4.086 * x(12) + 0.01 * x(9) * x(12)));
z24 =  ((-0.5 * x(1) * x(4)) / (((exp(2.19 + 1.476 * x(7) - 4.086 * x(10) + 0.01 * x(7) * x(10))) + 0.0095)^2) * x(7) * x(10) * exp(2.19 + 1.476 * x(7) - 4.086 * x(10) + 0.01 * x(7) * x(10))) + ((-0.5 * x(2) * x(5)) / (((exp(2.19 + 1.476 * x(8) - 4.086 * x(11) + 0.01 * x(8) * x(11))) + 0.0095)^2) * x(8) * x(11) * exp(2 * 2.19 + 2 * 1.476 * x(8) - 2 * 4.086 * x(11) + 2 * 0.01 * x(8) * x(11))) + ((-0.5 * x(3) * x(6)) / (((exp(2.19 + 1.476 * x(9) - 4.086 * x(12) + 0.01 * x(9) * x(12))) + 0.0095)^2) * x(9) * x(12) * exp(2.19 + 1.476 * x(9) - 4.086 * x(12) + 0.01 * x(9) * x(12)));
z25 =  ((-0.5 * x(1) * x(4)) / (((exp(2.19 + 1.476 * x(7) - 4.086 * x(10) + 0.01 * x(7) * x(10))) + 0.0095)^2)) + ((-0.5 * x(2) * x(5)) / (((exp(2.19 + 1.476 * x(8) - 4.086 * x(11) + 0.01 * x(8) * x(11))) + 0.0095)^2)) + ((-0.5 * x(3) * x(6)) / (((exp(2.19 + 1.476 * x(9) - 4.086 * x(12) + 0.01 * x(9) * x(12))) + 0.0095)^2));
f = det([z1 z2 z3 z4 z5; z6 z7 z8 z9 z10; z11 z12 z13 z14 z15; z16 z17 z18 z19 z20; z21 z22 z23 z24 z25]);
%非线性约束
function [g,geq] = constraint(x)
g(1) = x(5) - x(4);
g(2) = x(6) - x(5);
g(3) = x(7) - x(8);
g(4) = x(8) - x(9);
g(5) = x(10) - x(11);
g(6) = x(11) - x(12);
geq(1) = x(1) + x(2) + x(3) - 1;
geq(2) = x(4) + x(5) + x(6) - 1;
%% APSO Solver
function [gbest,fbest]=pso_mincon(fhandle,fnonlin,Lb,Ub,para)
if nargin <= 12
    para = [100 2000 0.95];
end
n = para(1);
time = para(2);
gama = para(3);
scale = abs(Ub - Lb);
% 战争约束条件是否合乎条件
if abs(length(Lb) - length(Ub))>0
    disp('Constraints must have equal size');
    return
end
alpha = 0.2;
beta = 0.5;
% 初始化粒子群
best=init_pso(n,Lb,Ub);

fbest = 1.0e+100;
% 迭代开始
for t = 1:time
    % 全局寻优
    for i = 1:n
        fval = Fun(fhandle,fnonlin,best(i,:));
        % 更新最优个体
        if fval >= fbest
            gbest = best(i,:);
            fbest = fval;
        end
    end
    % 随机性衰减因子
    alpha = newPara(alpha,gama);
    % 更新粒子位置
    best = pso_move(best,gbest,alpha,beta,Lb,Ub);
    % 结果显示
    str = strcat('Best estimates: gbest=',num2str(gbest));
    str = strcat(str,'iteration=');
    str = strcat(str,num2str(t));
    disp(str);
    fitness1(t) = fbest;
    plot(fitness1,'r','Linewidth',2)
    grid on
    hold on
    title('适应度')
end
% 初始化粒子函数
function [guess]=init_pso(n,Lb,Ub)
ndim=length(Lb);
for i=1:n
    guess(i,1:ndim)=Lb+rand(1,ndim).*(Ub-Lb); 
end
%更新所有的粒子
function ns=pso_move(best,gbest,alpha,beta,Lb,Ub)
% 增加粒子在上下边界区间内的随机性
n=size(best,1); 
ndim=size(best,2);
scale=(Ub-Lb);
for i=1:n
    ns(i,:)=best(i,:)+beta*(gbest-best(i,:))+alpha.*randn(1,ndim).*scale;
end
ns=findrange(ns,Lb,Ub);         
% 边界函数
function ns=findrange(ns,Lb,Ub)
n=length(ns);
for i=1:n
  % 下边界约束
  ns_tmp=ns(i,:);
  I=ns_tmp<Lb;
  ns_tmp(I)=Lb(I);
  
  % 上边界约束 
  J=ns_tmp>Ub;
  ns_tmp(J)=Ub(J);
  
  %更新粒子
  ns(i,:)=ns_tmp; 
end
% 随机性衰减因子
function alpha=newPara(alpha,gamma)
alpha=alpha*gamma;
% 带约束的d维目标函数的求解
function z=Fun(fhandle,fnonlin,u)
% 目标
z=fhandle(u);

z=z+getconstraints(fnonlin,u); % 非线性约束
function Z=getconstraints(fnonlin,u)
% 罚常数 >> 1
PEN=10^15;
lam=PEN; lameq=PEN;

Z=0;
% 非线性约束
[g,geq]=fnonlin(u);

%通过不等式约束建立罚函数
for k=1:length(g)
    Z=Z+ lam*g(k)^2*getH(g(k));
end
% 等式条件约束
for k=1:length(geq)
   Z=Z+lameq*geq(k)^2*geteqH(geq(k));
end

% Test if inequalities 
function H=getH(g)
if g<=0
    H=0; 
else
    H=1; 
end

% Test if equalities hold
function H=geteqH(g)
if g==0
    H=0;
else
    H=1; 
end