最优化-精确一维搜索

试探法

精确一维搜索就是通过迭代取减少搜索区间

对于搜索区间[a, b]

在这个区间中找连个互不相同的试探点p1 p2获取f(p1), f(p2), 设p1 < p2

若f(p1) < f(p2)   则丢弃区间 [p2, b]

若f(p1) >= f(p2) 则丢弃区间 [a, p1]

这样就达到了通过一次迭代减小搜索区间的目的

当搜索区间长度< 给定的误差e时,终止迭代

不同的试探法,其实不同的是选取p1, p2的方法

0.618法

  0.618法就是

  p1 = a * 0.618 + b * (1-0,618)

  p2 = a * (1-0,618) + b * 0.618

斐波那契法:

  对与第i次迭代

  p1 = Fi+1 / (Fi + Fi+1) * a + Fi / (Fi + Fi+1) * b

  p2 = Fi / (Fi + Fi+1) * a + Fi+1 / (Fi + Fi+1) * b

插值法

  通过已有的条件构造插值函数

  通过求插值函数的极小值点去近似已有函数的极小值点

三点二次插值

  已有三个点(p1,f(p1)),(p2,f(p2)),(p3,f(p3))

  通过拉格朗日插值法获取插值函数

  求得插值函数的倒数为0获取插值函数的极小值点(p0,f(p0))

  现在我们有四个点了,通过这种方法得到四个点后,通过试探法的迭代方法去缩小区间即可

  终止准则也同迭代法的终止准则

猜你喜欢

转载自www.cnblogs.com/shensobaolibin/p/10147872.html