以下是一个简单的MATLAB求解凸优化问题的案例,使用cvx工具箱求解:
% 1. 导入cvx工具箱
addpath('cvx');
% 2. 定义问题
n = 2; % 变量数量
x = sym('x', [n 1]); % 定义符号变量
f(x) = (x(1)-1)^2 + (x(2)-2)^2; % 定义目标函数
constraints = [x(1) + x(2) <= 3, x(1) >= 0, x(2) >= 0]; % 定义约束条件
% 3. 求解问题
cvx_begin
variable x(n);
minimize(f(x));
subject to
constraints;
cvx_end
% 4. 输出结果
fprintf('Optimal solution: x = (%.2f, %.2f), fval = %.2f\n', x(1), x(2), f(x));