### Rosenbrock

##### Mathematical Definition

###### Latex

`f(x, y)=\sum_{i=1}^{n}[b (x_{i+1} - x_i^2)^ 2 + (a - x_i)^2]`

##### Description and Features

Dimensions: d

The Rosenbrock function, also referred to as the Valley or Banana function, is a popular test problem for gradient-based optimization algorithms. It is shown in the plot above in its two-dimensional form.

The function is unimodal, and the global minimum lies in a narrow, parabolic valley. However, even though this valley is easy to find, convergence to the minimum is difficult (Picheny et al., 2012).

- The function is continuous.
- The function is convex.
- The function is defined on n-dimensional space.
- The function is multimodal.
- The function is differentiable.
- The function is non-separable.

##### Input Domain

The function is usually evaluated on the hypercube $x_i \in [-5, 10]$, for all $i=1, …, d$, although it may be restricted to the hypercube $x_i \in [-2.048, 2.048]$, for all $i=1, …, d$.

##### Global Minima

The function has one global minimum $f(\textbf{x}^{\ast})=0$ at $\textbf{x}^{\ast} = (1, …, 1)$.

##### Implementation

###### Python Code

```
def function(x):
x = np.array(x)
return np.sum([((1. - x[i]) ** 2)
+ (100 * (x[i + 1] - x[i] ** 2) ** 2)
for i in range(len(x) - 1)])
```

##### Solutions

##### References:

- http://benchmarkfcns.xyz/benchmarkfcns/rosenbrockfcn.html
- http://www.sfu.ca/~ssurjano/rosen.html
- https://en.wikipedia.org/wiki/Test_functions_for_optimization
- Momin Jamil and Xin-She Yang, A literature survey of benchmark functions for global optimization problems, Int. Journal of Mathematical Modelling and Numerical Optimisation}, Vol. 4, No. 2, pp. 150–194 (2013), arXiv:1308.4008