数模入门之线性规划(matlab软件学习)

第一章 线性规划

在利用matlab求线性规划的问题过程中,我们常用到的是linprog函数,下面我们将主要介绍一下linprog函数的常规用法。

例子 求解下列线性规划问题
数模入门之线性规划(matlab软件学习)_第1张图片
可编写matlab程序为
c=[2;3;-5];
a=[-2,5,-1;1,3,1];
b=[-10;12];
aeq=[1,1,1];
beq=7;
[x,fval]=linprog(-c,a,b,aeq,beq,zeros(3,1))
value=c’*x
运行结果:

x =

6.4286
0.5714
     0

fval =

-14.5714

value =

14.5714

附图:数模入门之线性规划(matlab软件学习)_第2张图片
解析:
matlab中的linprog常用的有一下几种形式:

This MATLAB
function solves min f’x such that Ax ≤ b.

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,options)

x = linprog(problem)

[x,fval] = linprog(___)

[x,fval,exitflag,output] = linprog(___)

[x,fval,exitflag,output,lambda] =linprog(___)

x = linprog(f,A,b)
功能:求解最小化问题 min x 条件 Ax ≤ b。
x =linprog(f,A,b,Aeq,beq)
功能:求解最小化问题 min x 条件 Ax ≤ b Aeqx =beq,如果没有不等式就设置A = [ ]和b = [ ];没有等式就设置 Aeq=[ ],beq=[]
x =linprog(f,A,b,Aeq,beq,lb,ub)
功能:求解最小化问题 min x 条件 Ax ≤ b Aeq
x =beq lb ≤ x ≤ ub,决策变量有上下限时,如果没有不等式就设置A = [ ]和b = [ ] ;没有等式就设Aeq=[ ],beq=[ ]
x =linprog(f,A,b,Aeq,beq,lb,ub,x0)
功能:求解最小化问题 min x 条件 Ax ≤ b Aeq*x =
beq lb ≤ x ≤ ub,如果没有不等式就设置A = [ ]和b = [ ]。设置初始点x0,这个选择项只是对medium-scale算法有效。默认的large-scale算法和简单的算法忽略任何初始点。
x =linprog(f,A,b,Aeq,beq,lb,ub,x0,options)
功能:最小化带有参数项的线性规划问题。其中options可以使用optimset来设置。
x =linprog(problem)
功能:对problem求最小值,其中problem是一个结构体。通过优化工具箱来创建,导入到MATLAB工作空间。
[x,fval] =linprog(…)
功能:返回目标函数最优解x,和在x处的值:fval =*x.
[x,fval,exitflag]= linprog(…)
功能:返回目标函数最优解x,和在x处的值:fval =*x,是否存在exitflag标志
[x,fval,exitflag,output]= linprog(…)
功能:返回目标函数最优解x,和在x处的值:fval = *x,是否存在exitflag标志,优化解结构体output
[x,fval,exitflag,output,lambda]= linprog(…)
功能:返回目标函数最优解x,和在x处的值:fval = *x,是否存在exitflag标志,优化解结构体output,拉格朗日乘子结构体lambda。

你可能感兴趣的:(数学建模)