matlab线性规划求解函数:linprog
matlab线性规划求解函数:linprog
1.linprog函数在matlab中用于求解线性规划问题,找到目标函数最小值及其解。
(初学时为了便于记忆函数名称,我把它看成line program中的片段组合)
(1).matlab基于求解器求解线性方程的标准形式是:
(2).函数基本调用格式为:
linprog函数基本调用格式 |
---|
[x,fval]= linprog(f,A,b) |
[x,fval]= linprog(f,A,b,Aeq,beq) |
[x,fval]= linprog(f,A,b,Aeq,beq,lb,ub) |
(3).参数含义:
等式左边 | 等式右边 |
---|---|
x返回的是决策向量的取值,fval返回的是目标函数最优解 | f为价值向量,A,b对应线性不等式约束,Aeq,beq对应线性等式约束,lb对应决策向量下界向量,ub对应决策向量上界向量 |
(只看文字描述可能有些抽象,可以结合下面举的具体例子来理解记忆)
2.常规的线性问题求解(例题)
(1)线性规划模型(求解x1,x2)
(2).求解代码:
clc,clear
c=[4;3];%目标函数中x1和x2的系数
b=[10;8;7];%不等式右边的值
a=[2,1;1,1;0,1];%不等式左边x前的系数构成的矩阵
lb=zeros(2,1);%x1,x2的下界向量
[x,fval]=linprog(-c,a,b,[],[],lb,[])
y=-fval %注意题目是取最大值,而返回的fval是最小值,此处要加负号
(3).求解结果