最优化——线搜索-二分法
程序员文章站
2022-03-14 22:52:57
...
一.BisectionMethod(二分法)
二分法是最为简单的线搜索方法,其主要思想是在给定范围内取中点,在给定的足够小的值eta左右偏移并计算
如果
然后更新搜索范围。
流程图
Python 代码:
def bisection(a0,b0):
epsilon = 0.0001
eta = 0.00001
ak = a0
bk = b0
midPoint = 0
while True:
if bk -ak < epsilon:
xstar = (bk + ak) / 2
fstar = calFx(xstar)
return xstar, fstar
else:
midPoint = (ak + bk) / 2
lambdaK = midPoint - eta
muK = midPoint + eta
fLambdaK = calFx(lambdaK)
fMuK = calFx(muK)
if fLambdaK > fMuK:
ak = lambdaK
continue
else:
bk = muK
continue