二次优化问题dfp_优化设计-fmincon函数介绍-序列二次的规划(SQP)-subspacetrustregion-activesett.pdf...
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
總結
以上是生活随笔為你收集整理的二次优化问题dfp_优化设计-fmincon函数介绍-序列二次的规划(SQP)-subspacetrustregion-activesett.pdf...的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: php aws s3查看所有文件_国内A
- 下一篇: java工程师占比_Java过时了吗?