Matlab 经典优化函数详细介绍 ----------------Matlab 优化工具箱简介 5.1 线性优化 线性规划问题是目标函数和约束条件均为线性函数的问题,MATLAB7.0 解决的线性规划问题的标准形式为 min su b. to: 其中f、x 、b、beq、lb、u b 为向量,A、Aeq 为矩阵. 其它形式的线性规划问题都可经过适当变换化为此标准形式. 在 MATLAB5.x 以上版中,线性规划问题Linear Programming 已用函数linprog 取代了 MATLAB5.x 版中的lp 函数.当然,由于版本的向下兼容性,一般说来,低版本中的函数在 7.0 版中仍可使用. 函数 linprog 格式 x = linprog(f,A,b) %求 min f ' *x su b.to 线性规划的最优解. x = linprog(f,A,b,Aeq,beq) %等式约束,若没有不等式约束,则 A=[ ],b=[ ]. x = linprog(f,A,b,Aeq,beq,lb,u b) . %指定 x 的范围,若没有等式约束 ,则 Aeq=[ ],beq=[ ]. x = linprog(f,A,b,Aeq,beq,lb,u b,x 0) nRxxfbxAbeqxAequ bxlbbxA %设置初值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 为关于优化的一些信息. 说明: 若 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 求解优化问题的主要函数 类 型 模 型 基本函数名 一元函数极小 Min F(x)s.t.x1