司守奎《数学建模算法与应用》 第二版的学习(2)可转化成线性规划的问题

文章介绍了如何在MATLAB线性规划中处理含有绝对值的约束条件,通过换元法将原问题转换为线性问题。具体步骤包括变量替换、编写代码以及回代决策变量。示例代码展示了转换和求解过程。
摘要由CSDN通过智能技术生成

问题一:

绝对值问题:

目标方程带有绝对值的问题:

 因为在matlab线性规划中没有办法给决策变量X加入绝对值限定,所以可以采用换元的思路:

设有:

|X|+X=2\upsilon ,|X|-X=2\nu,其中\upsilon ,\nu \geqslant 0

即有:

则原问题就可以变为: 

此时问题就变为了线性问题。 

 绝对值问题需要注意的点:

1)因为做变换后变为,此时有两种变量\upsilon ,\nu,所以在实现代码编写的时候若用一个变量X{}'表示时,可以先命名完\upsilon再命名\nu

2)计算完后要进行变量回代,回代后的才是真正的决策变量。

代码示例:

 

f=[1,2,3,4,1,2,3,4]';
A=[1 -1 -1 1;1 -1 1 -3;1 -1 -2 3];
A=[A,-A]
b=[-2 -1 -1/2]';
Aeq=[];
beq=[];
lb=zeros(length(f),1);
[x,fval]=linprog(f,A,b,Aeq,beq,lb);
%将换元部分回代,得到决策变量
x0=[];
for i=1:length(f)/2
    x0(i)=x(i)-x(i+(length(f)/2));
end
x0
fval

问题二:

面对这类问题可以令v=\max_{y_{i}}|\varepsilon _{i}|,此时问题变成了:

 

注意:

限制条件分别为x> y,x\leq y的情况,都要列出。

 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值