scipy.optimize.
rosen#
- scipy.optimize.rosen(x)[源]#
Rosenbrock 函数。
计算的函数为
sum(100.0*(x[1:] - x[:-1]**2.0)**2.0 + (1 - x[:-1])**2.0)
- 参数:
- x类数组
Rosenbrock 函数的计算点的一维数组。
- 返回:
- f浮点数
Rosenbrock 函数的值。
另请参阅
备注
rosen
除了 NumPy 之外,还对 Python 数组 API 标准兼容的后端提供实验性支持。请考虑通过设置环境变量SCIPY_ARRAY_API=1
并提供 CuPy、PyTorch、JAX 或 Dask 数组作为数组参数来测试这些功能。支持以下后端和设备(或其他功能)组合。库
CPU
GPU
NumPy
✅
不适用
CuPy
不适用
✅
PyTorch
✅
✅
JAX
✅
✅
Dask
✅
不适用
有关更多信息,请参阅对数组 API 标准的支持。
示例
>>> import numpy as np >>> from scipy.optimize import rosen >>> X = 0.1 * np.arange(10) >>> rosen(X) 76.56
对于更高维度的输入,
rosen
会进行广播。在以下示例中,我们使用此功能绘制 2D 景观。请注意,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()