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()