logo资料库

优化设计-fmincon函数介绍-序列二次规划(SQP)-subspace_trust_region-active_sett.pdf

第1页 / 共14页
第2页 / 共14页
第3页 / 共14页
第4页 / 共14页
第5页 / 共14页
第6页 / 共14页
第7页 / 共14页
第8页 / 共14页
资料共14页,剩余部分请下载后查看
fmincon函数 • 功能:求多变量有约束非线性函数的最小值。 • 数学模型: • min F(X) • subject to: A*X <= B, Aeq*X = Beq (线性约束) C(X) <= 0, Ceq(X) = 0 (非线性约束) LB <= X <= UB 其中,X, B, Beq, LB,和UB为向量, A 和 Aeq 为矩阵, C(X) 和 Ceq(X)为函数,返回标量。f(x), c(x), 和 ceq(x)可以是非线性 函数。
• 调用格式: [x,fval,exitflag,output]=fmincon(fun,x0,A,b,Aeq,beq,lb,ub,non lcon,options) Fval:目标函数在解X处的目标函数值 Exitflag:返回算法终止的状态指示结构变量 Output:优化计算结束之时返回结构变量
由于本问题中需要优化的变量只有两个,属于中等规模 优化问题。fmincon命令使用序列二次规划算法(SQP)来求 解。序列二次规划方法是将一个带有等式和不等式约束(可 以是非线性)的非线性优化问题转化为二次规划问题求解。 对于中等规模优化问题,求解二次规划问题涉及到 Hessian矩阵。Hessian矩阵的近似计算是通过拟牛顿法得到的, 拟牛顿法提供了两个公式可用于Hessian矩阵(或其逆)的迭 代:BFGS公式和DFP公式,而初始的Hessian矩阵是任意给的, 如给一个单位阵I。
MATLAB中SQP法的实现分三步,即 • 拉格朗日函数Hessian矩阵的更新; • 二次规划问题求解; • 一维搜索和目标函数的计算
序列二次规划(SQP)算法 • 序列二次规划(Sequential Quadratic Programming,简称SQP) 是当前公认的处理中、小规模非线性规划问题最优秀的算 法之一, 该算法通过将原问题转化为一系列二次规划子问 题的求解来获得原问题的最优解,对拉格朗日函数取二次近 似,从而提高二次规划子问题的近似程度, 对非线性较强的 优化问题也能进行计算。 • SQP方法的基本思想如下:在某个近似解处将原非线性规划 问题简化为处理一个二次规划问题,求取最优解,如果有,则 认为是原非线性规划问题的最优解, 否则, 用近似解代替构 成一个新的二次规划问题, 继续迭代。
• Matlab 优化工具箱中SQP算法的实现主要由以下三部分组成。 (1)更新拉格朗日函数的Hessian矩阵 H   1 k H k  T q q k k T q s k k  T H H k T k s H s k k k ) (5 • 式中: q k   f x k (  1 )  m m  i  g x k ( i )   [ f x k ( )   1  i  1  i  1  i  g x k ( i )] s k  x k 1  x k • 在每一次的迭代中, 采用BFGS 方法计算拉格朗日函数的 Hessian 矩阵的正定拟牛顿近似值H。只要保证 为正,并且H初始 化为正定矩阵,则Hessian矩阵一直保持正定。
分享到:
收藏