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.
Siehe auch
Hinweise
rosenhat 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 UmgebungsvariableSCIPY_ARRAY_API=1setzen 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
rosenerweitert (broadcasted). Im folgenden Beispiel verwenden wir dies, um eine 2D-Landschaft zu plotten. Beachten Sie, dassrosen_hessnicht 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()