- 1、本文档共14页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
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矩阵
q q T H T H
Hk 1 Hk k k k k (5)
q T s s T H s
k k k k k
• 式中:
m m
q f (x ) g (x ) [ f (x ) g (x )]
k k 1 i i k 1 k i i k
i 1 i 1
s x x
k k 1 k
• 在每一次的迭代中, 采用BFGS 方法计算拉格朗日函数的
Hessian 矩阵的正定拟牛顿近似值H。只要保证为正,并且H初始
化为正定矩阵,则Hessian矩阵一直保持正定。
1 T T
min q (d ) d Hd c d (6)
d Rn 2
A
文档评论(0)