MATLAB中linprog函数的用法

本文介绍了MATLAB中用于解决线性规划问题的linprog函数,包括函数的基本结构、参数说明及如何使用。通过具体例子展示了如何解决最大化线性目标函数的约束问题,并给出了完整代码及运行结果。

1. 简介

linprog函数主要用来求线型规划中的最小值问题(最大值的镜像问题,求最大值只需要加个“-”)

2. 算法结构及使用方法

针对约束条件为Ax=b或Ax≤b的问题

2.1 linprog函数

x=linprog(f,A,b)
x=linprog(f,A,b,Aeq,beq)
x=linprog(f,A,b,Aeq,beq,lb,ub)
x=linprog(f,A,b,Aeq,beq,lb,ub,x0)

2.2 参数简介

f:目标函数
A:不等式约束条件矩阵
b:对应不等式右侧的矩阵
Aeq:等式约束条件矩阵
beq:不等式右侧的矩阵
Aeq:等式约束条件矩阵
beq:对应等式右侧的矩阵
lb:x的下界
ub:x的上界
x0:设置初始点x0,这个选择项只是对medium-scale算法有效。默认的large-scale算法和简单的算法忽略任何初始点。(一般用不到)

2.3 常用linprog函数及用法举例

linprog函数常用形式为:

x=linprog(f,A,b,Aep,beq,lb,ub);

例题:

求最大值 :f= 7·x1 + 4·x2
约束条件为:
x1 + x2 ≤ 12
3·x1 + 2·x2 ≤ 26
2·x1 + x2 ≤ 16
x1≥0,x2≥0
根据目标函数f= 7·x1 + 4·x2可得:

f=[ 7 4 ];

根据不等式约束条件,有

1、A = [1 1;3 2;2 1];
2、b = [12 26 16];

x只有下届没有上届,有

lb = [0 0];

所以完整代码为

f = [ 7 4 ];
A = [1 1;3 2;2 1];
b = [12 26 16];
lb = [0 0];
[ x , fval ] = linprog( -f , A , b , [] , [] , lb , ub);
disp(x)
disp(-fval)

目标函数求最大值,所以f前加“-”
例题为不等式约束,等式参数Aeq,beq为空,用“[]”代替;x没有上界,ub也用“[]”代替。
“x”即目标函数取最大值时x1、x2的取值,“fval"即最小值。

运行结果为:
在这里插入图片描述
PS:MATLAB命令行窗口输入”help linprog“即可获取linprog函数详细用法。

评论 15
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值