回复 24楼 beyondyf
我感觉,就这道题而言,确实二分在理论上比黄金分割好:
设 x 服从 [0, 1] 区间上的均匀分布 U(0,1),求一分点 λ,0 < λ < 1,使得 x 落入所分区间的长度尽可能的短。
由题意,所分二区间长度分别为 λ 和 1-λ。由均匀分布,落入它们的概率也分别为 λ 和 1-λ。
则划分区间后,x 落入区间长度的期望为:
E(l) = λ*λ + (1-λ)*(1-λ) = 2λ^2 - 2λ + 1 = [sqrt(2)*λ - 1/sqrt(2)]^2 + 1/2
可见 λ = 1/2 的时候,期望的长度最短,是 1/2。
工程上之所以喜欢黄金分割是因为,一般的最优化问题,只算出一点是无法判断最优解的取值区间的(即使欲求函数是凸函数)。
考虑一个开口向上的抛物线,它是典型的凸函数。设初始区间 (a, b) 包含它的最低点 x。
如果我只在其中计算一点的函数值,是无法判断最低点到底是在所选点的左侧还是右侧。
为了判断这个问题,需要在该区间上取两点计算函数值。比如 a < t1 < t2 < b。那么:
如果 f(t1) >= f(t2),则 x 一定在 (t1, b) 内。否则必在 (a, t2) 内。
这时取黄金点,不仅可以保证这两个区间的长度相等,并且 t1 也是 (a, t2) 的一个黄金分点。这使得如果要在 (a, t2) 上做下一次迭代,可以少计算一次函数值。并且这种取点方法有很高的收敛速度(每次可以使区间缩短为原来的 0.618)。在工程上这就可能意味着少做一次实验,从而大量节约成本。
理论上使用 Fibonacci 分点,也可以满足这个条件,并且收敛速度最快。但菲氏数列(我记作 f[n])看上去比较复杂,而且每次迭代的收缩比 f[n+1]/f[n],不是常数。这个比值的极限正好是黄金比。并且在实践上,使用黄金分点和使用菲氏分点取得的效果差距不大,从而黄金分割法就在工程上取得了比较广泛的应用。
[
本帖最后由 pangding 于 2012-6-3 16:05 编辑 ]