matlab线性规划要点解析.docVIP

  • 35
  • 0
  • 约2.45万字
  • 约 26页
  • 2016-04-27 发布于湖北
  • 举报
MATLAB 优化问题 1 线性规划问题 线性规划问题是目标函数和约束条件均为线性函数的问题,MATLAB6.0解决的线性规划问题的标准形式为: min sub.to: 其中f、x、b、beq、lb、ub为向量,A、Aeq为矩阵。 其它形式的线性规划问题都可经过适当变换化为此标准形式。 在MATLAB6.0版中,线性规划问题(Linear Programming)已用函数linprog取代了函数 linprog 格式 x = linprog(f,A,b) %求min f *x sub.to 线性规划的最优解。 x = linprog(f,A,b,Aeq,beq) %等式约束,若没有不等式约束,则A=[ ],b=[ ]。x的范围,若没有等式约束 ,则Aeq=[ ],beq=[ ] x = linprog(f,A,b,Aeq,beq,lb,ub,x0) %设置初值x0 x = linprog(f,A,b,Aeq,beq,lb,ub,x0,options) % options为指定的优化参数 [x,fval] = linprog(…) % 返回目标函数最优值,即fval= f *x。 [x,lambda,exitflag] = linprog(…) % lambda为解x的Lagrange乘子。 [x, lambda,fval,exitflag] = linprog(…) % exitflag为终止迭代的错误条件。 [x,fval, lambda,exitflag,output] = linprog(…) % output为关于优化的一些信息 说明 若exitflag0表示函数收敛于解x,exitflag=0表示超过函数估值或迭代的最大数字,exitflag0表示函数不收敛于解x;若lambda=lower 表示下界lb,lambda=upper表示上界ub,lambda=ineqlinlambda=eqlin表示等式约束,lambda中的非0元素表示对应的约束是有效约束;output=iterations表示迭代次数,output=algorithm表示使用的运算规则,output=cgiterations表示PCG迭代次数。 例5-1 求下面的优化问题 min sub.to 解: f = [-5; -4; -6]; A = [1 -1 1;3 2 4;3 2 0]; b = [20; 42; 30]; lb = zeros(3,1); [x,fval,exitflag,output,lambda] = linprog(f,A,b,[],[],lb) 结果为: x = %最优解 0.0000 15.0000 3.0000 fval = %最优值 -78.0000 exitflag = %收敛 1 output = iterations: 6 %迭代次数 cgiterations: 0 algorithm: lipsol %所使用规则 lambda = ineqlin: [3x1 double] eqlin: [0x1 double] upper: [3x1 double] lower: [3x1 double] lambda.ineqlin ans = 0.0000 1.5000 0.5000 lambda.lower ans = 1.0000 0.0000 0.0000 表明:不等约束条件2和3以及第1个下界是有效的 2 非线性规划问题 2.1 有约束的一元函数的最小值 单变量函数求最小值的标准形式为 sub.to 在MATLAB中使用fmin函数求其最小值。 函数 fminbnd 格式 x = fminbnd(fun,x1,x2) %返回自变量x在区间上函数fun取最小值时x值,fun为目标函数的表达式字符串或MATLAB自定义函数的函数柄。 x = fminbnd(fun,x1,x2,options) % options为指定优化参数选项 [x,fval] = fminbnd(…) % fval为目标函数的最小值 [x,fval,exitflag] = fminbnd(…) %xitflag为终止迭代的条件 [x,fval,exitflag,output] = fminbnd(…) % output为优化信息 说明 若参数ex

文档评论(0)

1亿VIP精品文档

相关文档