收集整理Matlab中的linprog函数使用说明
linprog函数是用来求解线性规划问题,其中,f,x,b,beq,lb,ub为向量,A,Aeq为矩阵。
a).x=linprog(f,A,b)
功能:求解最小化问题:min f*x,条件:A*x ≤ b,返回值x为最优解向量。
b).x=linprog(f,A,b,Aeq,beq)
功能:求解最小化问题:min f*x,条件:A*x ≤ b & Aeq*x=beq,如果没有不等式就设置A=[]以及b=[];没有等式就设置Aeq=[]以及beq=[]。
c).x=linprog(f,A,b,Aeq,beq,lb,ub)
功能:求解最小化问题:min f*x,条件:A*x ≤ b & Aeq*x=beq & lb ≤ x≤ ub,决策变量有上下限时,如果没有不等式就设置A=[]以及b=[];没有等式就设置Aeq=[]以及beq=[]。
d).x=linprog(f,A,b,Aeq,beq,lb,ub,x0)
功能:求解最小化问题:min f*x,条件:A*x ≤ b & Aeq*x=beq & lb ≤ x≤ ub,,如果没有不等式就设置A=[]以及b=[];没有等式就设置Aeq=[]以及beq=[]。设置初始点x0,这个选择项只是对medium-scale算法有效。默认的large-scale算法和简单的算法忽略任何初始点。
e).x=linprog(f,A,b,Aeq,beq,lb,ub,x0,options)
功能:求解最小化问题:min f*x,条件:A*x ≤ b & Aeq*x=beq & lb ≤ x≤ ub,,如果没有不等式就设置A=[]以及b=[];没有等式就设置Aeq=[]以及beq=[]。并能设置初始点,options为指定优化参数进行最小化,options可选参数描述如下:
Display:显示水平。选择“off”不显示输出;选择“Iter”显示每一步迭代过程的输出;选择“final”显示最终结果。
MaxFunEcals:函数评价的最大允许次数;
MaxIter:最大允许迭代次数;
……
其中options可以使用optionset来设置,其他的可以在Matlab中输入:doc linprog 查看详情。
f).x=linprog(problem)
功能:对problem求你最小值,其中problem是一个结构体。通过优化工具来创建,导入到Matlab工作空间。
g).[x,fval]=linprog(……)
功能:返回目标函数最优解x,和在x处的值:fval=f*x。
h).[x,fval,exitflag]=linprog(……)
功能:返回目标函数最优解x,和在x处的值:fval=f*x,是否存在exitflag标志
i).[x,fval,exitflag,output]=linprog(……)
功能:返回目标函数最优解x,和在x处的值:fval=f*x,是否存在exitflag标志,优化解结构体output。
j).[x,fval,exitflag,output]=linprog(……)
功能:返回目标函数最优解x,和在x处的值:fval=f*x,是否存在exitflag标志,优化解结构体output,拉格朗日乘子结构体lambda。