[x,fval] = linprog(…) % 返回目标函数最优值,即fval= f (x)。 [x,fval,lambda,exitflag] = linprog(…) % lambda为解x的Lagrange乘子。 [x, favl,lambda,fval,exitflag] = linprog(…) % exitflag为终止迭代的错误条件。 [x,fval, lambda,exitflag,output] = linprog(…) % output为关于优化的一些信息 说明 若exitflag>0表示函数收敛于解x,exitflag=0表示超过函数估值或迭代的最 大数字,exitflag<0表示函数不收敛于解x;若lambda=lower 表示下界lb, lambda=upper表示上界ub,lambda=ineqlin表示不等式约束,lambda=eqlin表示 等式约束,lambda中的非0元素表示对应的约束是有效约束;output=iterations表 示迭代次数,output=algorithm表示使用的运算规则,output=cgiterations表示 PCG迭代次数。
MATLAB求解程序清单为:
首先输入下列系数 f=[-60;-120]; A=[9,4;3,10;4,5]; b=[360,300,200]; lb=zeros(2,1); ub=[];
然后调用linprog函数:
[x,fval,exitflag,output,lambda]=linprog(f,A,b,[],[],lb,ub) 计算结果为: x = 20.0000 24.0000 fval = -4.0800e+003 exitflag = 1 output = iterations: 5 algorithm: 'large-scale: interior point‘ cgiterations: 0 message: 'Optimization terminated.' lambda = ineqlin: [3x1 double] eqlin: [0x1 double] upper: [2x1 double] lower: [2x1 double]