用于线性规划的MATLAB函数主要是linprog。
线性规划的数学模型:
式中 , f、x、b、beq、lb和ub为向量。A 和 Aeq为矩阵。
需要提醒的是, MATLAB中给向量和矩阵的赋值是逐行进行的,行之间用分号“;”隔开,每行元素之间可用 “,”也可用空格隔开,矩阵右上角用符号“'”表示转置运算。
linprog 函数的调用格式如下:
1) [x , fval] = linprog( f , A , b),求解线性规划问题的,约束条件为,同时返回解 x 处的目标函数值fval。
2) [x , fval] = linprog( f, A, b , Aeq , beq ),求解线性规划问题的,约束条件为, 但增加等式约束的条件,;若不等式不存在,则令 A=[]、b= [],同时返回解x 处的目标函数值 fval。
3) [x, fval]=linprog(f , A , b , Aeq, beq , lb, ub),求解线性规划问题的,约束条件为及,并定义变量x 的下界lb和上界ub,使得x 始终在该范围内; 若等式不存在,则令Aeq=[]、beq=[],同时返回解x 处的目标函数值fval。
4) [x , fval] = linprog(f , A, b, Aeq, beq, lb, ub, x0) ,求解线性规划问题的, 约束条件为及,定义变量 x 的下界lb和上界ub,设置初值为x0同时返回解 x 处的目标函数值 fval。
5) [x , fval] = linprog (f , A , b, Aeq, beq, lb, ub, x0, options),求解线性规划问题的, 约束条件为及,定义变量x 的下界lb和上界ub,设置初值为x0。用options 指定的优化参数进行最小化,同时返回解 x 处的目标函数值 fval。