Python实现:
import sympy
import numpy as npdef twoloop(s, y, rho, gk):n len(s) #向量序列的长度if n > 1 and type(gk)np.matrix:#h0是标量,而非矩阵h0 float((s[-1].T*y[-1])/(y[-1].T*y[-1]))elif n >1:h0 (s[-1]*y[-1])/(y[-1]*y[-1])…
1 算法特征:
利用函数 f ( x ⃗ ) f(\vec{x}) f(x )的1阶信息, 构造其近似的二阶Hessian矩阵. 结合Armijo Rule, 在最优化过程中达到超线性收敛的目的. 算法推导: 为书写方便, 引入如下两个符号 B B B、 D D D分别表示近似Hessian矩阵及其逆矩阵: { B ≈ H D ≈ H − 1 \begi…
BFGS
step 1.
根据泰勒公式,省略掉高阶项: f(x)≈f(xk1)∇f(xk1)⋅(x−xk1)12⋅(x−xk1)T⋅∇2f(xk1)⋅(x−xk1) f ( x ) ≈ f ( x k 1 ) ∇ f ( x k 1 ) ⋅ ( x − x k 1 ) 1 2 ⋅ ( x − x k 1 ) T ⋅ ∇ 2 f ( x k 1 ) ⋅ ( x − x k 1 ) 再…