MATLAB求解带约束的优化问题 - f(x) = 0.4x2 + x1^2 + x2^2 - x1x2 + x1^3
同样,我们可以使用MATLAB的fmincon函数来求解这个带约束的最优化问题。以下是求解该问题的MATLAB代码:
% 目标函数
fun = @(x) 0.4*x(2) + x(1)^2 + x(2)^2 - x(1)*x(2) + x(1)^3;
% 线性不等式约束
A = [-1, -0.5; -0.5, -1];
b = [-0.4; -0.5];
% 变量的下界
lb = [0; 0];
% 求解最优化问题
x0 = [0; 0]; % 初始点
[x, fval] = fmincon(fun, x0, A, b, [], [], lb);
disp(['最小值为: ', num2str(fval)]);
disp(['最优解为: x = ', num2str(x')]);
在上述代码中,我们定义了目标函数fun,线性不等式约束A和b,变量的下界lb为0(因为约束中也要求x1>=0和x2>=0)。然后使用fmincon函数求解最优化问题。
最后,使用disp函数输出最小值和最优解。请注意,在约束条件中使用了不等式Ax<=b的形式,所以要将约束条件转化为-x1 - 0.5*x2 <= -0.4和-0.5*x1 - x2 <= -0.5的形式。
原文地址: https://www.cveoy.top/t/topic/b4r7 著作权归作者所有。请勿转载和采集!