scipy.optimize.

rosen#

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

Die Rosenbrock-Funktion.

Die berechnete Funktion ist

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

1-D-Array von Punkten, an denen die Rosenbrock-Funktion berechnet werden soll.

Rückgabe:
ffloat

Der Wert der Rosenbrock-Funktion.

Hinweise

rosen hat experimentelle Unterstützung für Backends, die mit dem Python Array API Standard kompatibel sind, zusätzlich zu NumPy. Bitte erwägen Sie, diese Funktionen zu testen, indem Sie die Umgebungsvariable SCIPY_ARRAY_API=1 setzen und CuPy-, PyTorch-, JAX- oder Dask-Arrays als Array-Argumente übergeben. Die folgenden Kombinationen von Backend und Gerät (oder anderen Fähigkeiten) werden unterstützt.

Bibliothek

CPU

GPU

NumPy

n/a

CuPy

n/a

PyTorch

JAX

Dask

n/a

Siehe Unterstützung für den Array API Standard für weitere Informationen.

Beispiele

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

Für höherdimensionale Eingaben wird rosen erweitert (broadcasted). Im folgenden Beispiel verwenden wir dies, um eine 2D-Landschaft zu plotten. Beachten Sie, dass rosen_hess nicht auf diese Weise erweitert (broadcasted) wird.

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