28.1_Rosenbrock 函数

28.1 Rosenbrock函数

本步骤将处理Rosenbrock函数。该函数的式子如下,其形状如图28-1所示。

y=100(x1x02)2+(x01)2(28.1)y = 1 0 0 \left(x _ {1} - x _ {0} ^ {2}\right) ^ {2} + \left(x _ {0} - 1\right) ^ {2} \tag {28.1}

观察图28-1,可以看到函数像是一个抛物线形状的绵延不断的山谷。如果画出图28-1中“山”的等高线,就会发现线的形状很像香蕉,所以Rosenbrock函数也叫“香蕉函数”。

本步骤的目标是找到使Rosenbrock函数的输出值最小的 x0x_0x1x_{1} 。先说答案,Rosenbrock函数的最小值在 (x0,x1)=(1,1)(x_0,x_1) = (1,1) 处。在本步骤,我们将使用DeZero,看看它能否真的找到这个最小值。


图28-1 Rosenbrock函数的形状(图片引自参考文献[19])

Rosenbrock函数的严格的定义是 f(x0,x1)=b(x1x02)2+(ax0)2f(x_0, x_1) = b(x_1 - x_0^2)^2 + (a - x_0)^2 ,其中 aabb 是常数。上面的例子是 a=1a = 1b=100b = 100 时的 Rosenbrock 函数。Rosenbrock 函数常作为优化问题的基准函数来使用。当 Rosenbrock 函数作为基准函数时,一般使用 a=1a = 1b=100b = 100 作为 aabb 的值。