>> f2 = @(x) sin(x(1)) + 2 * cos(x(1)) + sin(x(2)) + 3 * cos(x(2));
fun = @(x) (x(1)-1)^2 + (x(2)-1)^2;
% 定义变量的上下界
lb = [-10, -10];
ub = [10, 10];
% 定义非线性约束
nonlcon = @nonlinearConstraint;
% 使用GA求解器进行优化
options = optimoptions('ga', 'Display', 'iter');
[x, fval] = ga(fun, 2, [], [], [], [], lb, ub, nonlcon, options);
disp(x)
disp(fval)
function [c, ceq] = nonlinearConstraint(x)
% 非线性约束函数
f1 = @(m, a) m.^2 + m
b = 100;
c = [x(1)^2 + x(2)^2 - 1; % x1^2 + x2^2 >= 1
x(1) + x(2) - 2; % x1 + x2 <= 2
integral(@(n) f1(n, x(2)), x(1), b)];
ceq = [0;0;0];
end
fun = @(x) (x(1)-1)^2 + (x(2)-1)^2;
% 定义变量的上下界
lb = [-10, -10];
ub = [10, 10];
% 定义非线性约束
nonlcon = @nonlinearConstraint;
% 使用GA求解器进行优化
% options = optimoptions('ga', 'Display', 'iter');
% for i = 1:10
% [x, fval] = ga(fun, 2, [], [], [], [], lb, ub, nonlcon, options);
% end
function [c, ceq] = nonlinearConstraint(x)
% 非线性约束函数
f1 = @(m, a) a * m.^2 - m
b = 10;
c = [x(1)^2 + x(2)^2 - 1; % x1^2 + x2^2 <= 1
x(1) + x(2) - 2; % x1 + x2 <= 2
];
ceq = [0;0;0];
end