对于一个多元函数,用最速下降法(又称梯度下降法)求其极小值的迭代格式为
其中为负梯度方向,即最速下降方向,αkαk为搜索步长。
一般情况下,最优步长αkαk的确定要用到线性搜索技术,比如精确线性搜索,但是更常用的是不精确线性搜索,主要是Goldstein不精确线性搜索和Wolfe法线性搜索。
为了调用的方便,编写一个Python文件,里面存放线性搜索的子函数,命名为linesearch.py,这里先只编写了Goldstein线性搜索的函数,关于Goldstein原则,可以参看最优化课本。
线性搜索的代码如下(使用版本为Python3.3):
'''
线性搜索子函数
'''
import n
1