前提:求单峰函数
ϕ
(
t
)
\phi(t)
ϕ(t)的极小点
①黄金分割法
算法构造思想
- 插入的两点在搜索区间中是对称的,因此无论删除哪一端,留下的总是长为β的区间。同时保证下一次迭代,能利用上一次迭代计算过的点。
- 保证了每次迭代都以同一个的比率缩短区间。
β 1 = α β \frac{\beta}{1} = \frac{\alpha}{\beta} 1β=βα
在 [ a , b ] [a,b] [a,b]区间插入两个点 t 1 , t 2 t_1, t_2 t1,t2
- 左端点 t 1 : t_1: t1: t 1 = a + α ( b − a ) t_1 = a+\alpha(b-a) t1=a+α(b−a)
- 右端点 t 2 : t_2: t2: t 2 = a + β ( b − a ) t_2 = a+\beta(b-a) t2=a+β(b−a)
②斐波那契法
算法构造思想
在计算点个数相同的前提下,找到使最终区间长度最小的方法
算法步骤:
- 首先确定最终区间长度和初始搜索区间长度的比值 δ ∈ ( 0 , 1 ) \delta\in(0,1) δ∈(0,1)
- 由 F n ≥ 1 δ F_n\geq \frac{1}{\delta} Fn≥δ1,计算出迭代的轮数 n n n
- 根据下列公式计算插值点的位置:
斐波那契数列:
L n = L n − 2 + L n − 1 L_n = L_{n-2} + L_{n-1} Ln=Ln−2+Ln−1
L 0 = L 1 = 1 L_0 = L_1 = 1 L0=L1=1
③三点二次插值法
算法思想:
知道三个点以及它们的函数值,构造一个二次函数去逼近目标函数,下一个迭代点是本次二次函数的最优解,然后继续构造新的二次函数去逼近(新的三点仍然要满足两边高,中间低)
④两点三次插值
根据两个点的函数值及在该点的导数,取
P
(
t
)
P(t)
P(t)为三次多项式来拟合
ϕ
(
t
)
ϕ(t)
ϕ(t),然后用其极小点作为
ϕ
(
t
)
ϕ(t)
ϕ(t)极小点的近似值