scipy.optimize.

rosen#

scipy.optimize.rosen(x)[источник]#

Функция Розенброка.

Вычисляемая функция:

sum(100.0*(x[1:] - x[:-1]**2.0)**2.0 + (1 - x[:-1])**2.0)
Параметры:
xarray_like

Одномерный массив точек, в которых должна быть вычислена функция Розенброка.

Возвращает:
ffloat

Значение функции Розенброка.

Смотрите также

rosen_der, rosen_hess, rosen_hess_prod

Примечания

rosen имеет экспериментальную поддержку совместимых с Python Array API Standard бэкендов в дополнение к NumPy. Пожалуйста, рассмотрите тестирование этих функций, установив переменную окружения SCIPY_ARRAY_API=1 и предоставление массивов CuPy, PyTorch, JAX или Dask в качестве аргументов массива. Поддерживаются следующие комбинации бэкенда и устройства (или других возможностей).

Библиотека

CPU

GPU

NumPy

н/д

CuPy

н/д

PyTorch

JAX

Dask

н/д

См. Поддержка стандарта array 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()
../../_images/scipy-optimize-rosen-1.png