华电北风吹
天津大学认知科学与计算重点实验室
日期 2015/11/7
本文主要从试探法、插值法、微积分中的求根法讲解怎么求解一维函数极值问题。
一、试探法
1、斐波那契法(分数法)
适用条件:存在极值点的一维凸函数,或者在指定求解区间上的凸函数,本文举例以标准凸函数为例(下凸)。
y=f(t) 是区间[a,b]上的凸函数,在此区间内存在极小值点t′。若在区间内任意取两相异点a1,b1,假设a1<b1,计算函数值f(a1),f(b1),则必有如下三种情况,
1) f(a1)<f(b1),这是极小值点必在[a,a1] 之间(图1)
2) f(a1)>f(b1),这是极小值点必在[a1,b] 之间(图2)
3) f(a1)=f(b1),虽然概率几乎为0,但是还是说一下吧,这个时候可以归结为情况1或者情况2解决。
注意到斐波那契数列的性质
F(n)=F(n−1)+F(n−2)
先把区间分为F(n)份,分别计算F(n−1)和F(n−2) 处的函数值即可判断出极值点是位于前F(n−1)个区间还是后F(n−1)个区间。这样就可以把区间长度缩短为F(n−1)了。然后依次递归压缩区间长度直到确定所在的区间长度为F(1)=1。而且,在对长度为F(n−1)的区间递归的过程中,发现F(n−2)处的值在上一次递归的时候已经计算好,这一次只需要计算F(n−1)−F(n−2)处的值即可,即每次迭代只需要计算一次函数值。
2、黄金分割法(0.618法)。
求解的问题类型类似于斐波那契法,求解方法也类似。每次试点取在区间长度的0.618倍处和0.382倍处。这样每次可缩短区间长度为原来的0.618倍。依次递归。直到达到最大迭代次数或者满足收敛判定条件。
二、插值法
1、抛物线法
对极值点周围的点采样,然后抛物线拟合,把抛物线的极值点作为真实极值点的近似。
2、三次插值法
同抛物线法。
三、微积分中的求根法
转化为求解导数为0的解方程问题。
1、切线法
牛顿法
2、二分法
依次二分分割区间。