背景
- 讨论目标函数为一元单值函数 f:R→R 时的最值求解问题
- 通过迭代求解得到结果
- 这些方法统称为一维搜索法或线性搜索法
- 这是多变量问题求解的特例,也是多变量问题求解的算法的一部分
- 主要逻辑为从初始搜索点 x(0) 开始,产生一个迭代序列 x(1) , x(2),... ,在第 k=0,1,2,... 次迭代中,通过当前迭代点 x(k) 和目标函数 f 构建下一个迭代点
x(k+1)
解法
黄金分割法
- 适用范围
- 求解在闭区间 [a0 , b0] 上的极点
- 必须存在唯一局部极点,即在 [a0,b0] 上是单峰的
- 思想
- 挑选区间 [a0,b0] 中的点,计算对应的目标函数值,并不断缩小极点所在的区间
- 利用尽可能少的计算次数来找出极点,直到达到足够的精度水平
- 如果只挑一个点,并不知道极点在点的左侧还是右侧,因此需要挑两个点进行计算,假设挑中 a1 和 b1 ,满足 a0<a1<b1<b0 ,且有 a1−a0=b0−b1=ρ(b0−a0) ,也就是说,这里的 ρ 是用来控制区间缩小的范围的,因此 ρ<12 。并且根据 f(a1) 和 f(b1) 的值来判断新区间为 [a1,b0] 还是 [a0,b1]
- ρ 的取值究竟多少才使得效率最高?假设第一次计算出来了 a1 和 b1 ,然后根据大小关系把范围缩小成 [a0,b1] ,那么 a1 不能白计算啊,所以如果让 a1=