美文网首页
优化:一维搜索算法—黄金分割法

优化:一维搜索算法—黄金分割法

作者: 小新学算法 | 来源:发表于2019-11-18 20:49 被阅读0次

黄金分割法适用于[a.b]区间上的任何单峰函数求极小值问题,对函数除要求“单峰”外不做其他要求,甚至可以不连续。


求解过程
def func(x):
    return x**2

def golden(a,b,eps,func):
    r = a + 0.382*(b-a)
    u = a + 0.618*(b-a)
    while u-r>eps:
        if func(r)>func(u):
            a = r
            r = u
            u = a + 0.618*(b-a)
        else:
            b = u
            u = r
            r = a + 0.382*(b-a)
    if func(r)>func(u):
        return u,func(u)
    else:
        return r,func(r)

golden(-1,1,0.01,func)

相关文章

网友评论

      本文标题:优化:一维搜索算法—黄金分割法

      本文链接:https://www.haomeiwen.com/subject/nezbictx.html