scipy.optimize.

rosen#

scipy.optimize.rosen(x)[source]#

Rosenbrock 函數。

此函數的計算公式為

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

Rosenbrock 函數將在此 1 維陣列的點上進行計算。

回傳值:
ffloat

Rosenbrock 函數的值。

範例

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

對於更高維度的輸入,rosen 函數會進行廣播 (broadcasts)。在以下範例中,我們使用它來繪製 2D 地景 (landscape)。請注意,rosen_hess 函數不會以這種方式廣播。

>>> 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()
../../_images/scipy-optimize-rosen-1.png