QCP.M.


QCP.M.


功能QCP()%Copyright 2022,Gurobi优化,L狗万app足彩LC %%此示例制定并解决以下简单的QCP模型:%最大化%x%对准%x + y + z = 1%x ^ 2 + y ^ 2 <=Z ^ 2(二阶锥)%x ^ 2 <= yz(旋转二阶锥)%x,y,z非负面名称= {'x','y','z'};model.varnames =名字;%设置目标:x model.obj = [1 0 0];model.modelsense ='max';%添加约束:x + y + z = 1 model.a =稀疏([1 1 1]);model.rhs = 1;model.sense ='=';%添加二阶锥:x ^ 2 + y ^ 2 <= ^ 2使用稀疏矩阵model.quadcon(1).qc =稀疏([1 0 0; 0 1 0; 0 0 -1]);model.quadcon(1).q = zeros(3,1); model.quadcon(1).rhs = 0.0; model.quadcon(1).name = 'std_cone'; % Add rotated cone: x^2 <= yz using sparse triplet representation % Equivalent sparse matrix data: %model.quadcon(2).Qc = sparse([ % 1 0 0; % 0 0 -1; % 0 0 0]); model.quadcon(2).Qrow = [1, 2] model.quadcon(2).Qcol = [1, 3] model.quadcon(2).Qval = [1, -1] % All-zero sparse 3-by-1 vector model.quadcon(2).q = sparse(3,1); model.quadcon(2).rhs = 0.0; model.quadcon(2).name = 'rot_cone'; gurobi_write(model, 'qcp.lp'); result = gurobi(model); for j=1:3 fprintf('%s %e\n', names{j}, result.x(j)) end fprintf('Obj: %e\n', result.objval); end