Skip to main content
`Ctrl`+`K`

# scipy.optimize.rosen

scipy.optimize.rosen(x)

  The Rosenbrock function.

  The function computed is:

      sum(100.0*(x[1:] - x[:-1]**2.0)**2.0 + (1 - x[:-1])**2.0)

  Parameters:
    x array_like

      1-D array of points at which the Rosenbrock function is to be computed.

  Returns:
    f float

      The value of the Rosenbrock function.

  See also

  `rosen_der`, `rosen_hess`, `rosen_hess_prod`

  Examples

      >>> import numpy as np
      >>> from scipy.optimize import rosen
      >>> X = 0.1 * np.arange(10)
      >>> rosen(X)
      76.56

  For higher-dimensional input `rosen` broadcasts. In the following example, we use this to plot a 2D landscape. Note that `rosen_hess` does not broadcast in this manner.

      >>> import matplotlib.pyplot as plt
      >>> from mpl_toolkits.mplot3d import Axes3D
      >>> x = np.linspace(-1, 1, 50)
      >>> X, Y = np.meshgrid(x, x)
      >>> ax = plt.subplot(111, projection='3d')
      >>> ax.plot_surface(X, Y, rosen([X, Y]))
      >>> plt.show()