cvx实数变量_matlab cvx工具箱解决线性优化问题

题目来源:数学建模算法与应用第二版(司守奎)第一章习题1.4

题目说明

作者在答案中已经说明,求解上述线性规划模型时,尽量用Lingo软件,如果使用Matlab软件求解,需要做变量替换,把二维决策变量化成一维决策变量,很不方便。(原答案附末尾)

这里我们可以采用matlab的cvx工具箱进行编写,会简化代码并提升可读性

clc;clear;

format short;

% 初始数据

w = [18 15 23 12];

r = [3100 3800 3500 2850] .* w;

s = [480 650 580 390] .* w;

ls = [6800 8700 5300];

lw = [10 16 8];

%开始求解

cvx_begin

variable x(4,3); % 决策变量

maximize(sum(r*x)); % 目标函数

subject to % 约束条件

w*x<=lw;

s*x<=ls;

x >= 0;

sum(x,2) <= 1

cvx_end

disp("每种货物吨数(t):");

result = w' .* sum(x,2);

disp(result);

disp('最大利润(元):');

disp(cvx_optval);

代码说明:

w为每种货物的总重量

r为每种货物的总利润

s为每种货物所占用的总空间

ls为飞机上的空间限制

ls为飞机上的重量限制

运行结果:

原版答案:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值