SciPy (āĻāĻā§āĻāĻžāĻ°āĻŋāĻ¤ āĻ¸āĻžāĻ āĻĒāĻžāĻ) āĻšāĻ˛ āĻ¨āĻŽā§āĻĒāĻŋ āĻĒāĻžāĻāĻĨāĻ¨ āĻāĻā§āĻ¸āĻā§āĻ¨āĻļāĻ¨ā§āĻ° āĻāĻĒāĻ° āĻāĻŋāĻ¤ā§āĻ¤āĻŋ āĻāĻ°ā§ āĻāĻāĻāĻŋ āĻāĻžāĻŖāĻŋāĻ¤āĻŋāĻ āĻ ā§āĻ¯āĻžāĻĒā§āĻ˛āĻŋāĻā§āĻļāĻ¨ āĻĒā§āĻ¯āĻžāĻā§āĻāĨ¤ SciPy-āĻāĻ° āĻ¸āĻžāĻĨā§, āĻāĻĒāĻ¨āĻžāĻ° āĻāĻ¨ā§āĻāĻžāĻ°ā§āĻā§āĻāĻŋāĻ āĻĒāĻžāĻāĻĨāĻ¨ āĻ¸ā§āĻļāĻ¨āĻāĻŋ MATLAB, IDL, Octave, R-Lab āĻāĻŦāĻ SciLab-āĻāĻ° āĻŽāĻ¤ā§ āĻāĻāĻ āĻ¸āĻŽā§āĻĒā§āĻ°ā§āĻŖ āĻĄā§āĻāĻž āĻ¸āĻžāĻ¯āĻŧā§āĻ¨ā§āĻ¸ āĻāĻŦāĻ āĻāĻāĻŋāĻ˛ āĻ¸āĻŋāĻ¸ā§āĻā§āĻŽ āĻĒā§āĻ°ā§āĻā§āĻāĻžāĻāĻĒāĻŋāĻ āĻĒāĻ°āĻŋāĻŦā§āĻļā§ āĻĒāĻ°āĻŋāĻŖāĻ¤ āĻšāĻ¯āĻŧāĨ¤ āĻāĻ āĻāĻŽāĻŋ āĻ¸āĻāĻā§āĻˇā§āĻĒā§ scipy.optimize āĻĒā§āĻ¯āĻžāĻā§āĻā§ āĻāĻŋāĻā§ āĻ¸ā§āĻĒāĻ°āĻŋāĻāĻŋāĻ¤ āĻ āĻĒā§āĻāĻŋāĻŽāĻžāĻāĻā§āĻļāĻžāĻ¨ āĻ ā§āĻ¯āĻžāĻ˛āĻāĻ°āĻŋāĻĻāĻŽ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°āĻžāĻ° āĻŦāĻŋāĻˇāĻ¯āĻŧā§ āĻāĻĨāĻž āĻŦāĻ˛āĻ¤ā§ āĻāĻžāĻāĨ¤ āĻĢāĻžāĻāĻļāĻ¨ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ°ā§ āĻāĻ°āĻ āĻŦāĻŋāĻ¸ā§āĻ¤āĻžāĻ°āĻŋāĻ¤ āĻāĻŦāĻ āĻāĻĒ-āĻā§-āĻĄā§āĻ āĻ¸āĻžāĻšāĻžāĻ¯ā§āĻ¯ āĻ¸āĻ°ā§āĻŦāĻĻāĻž help() āĻāĻŽāĻžāĻ¨ā§āĻĄ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°ā§ āĻŦāĻž Shift+Tab āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°ā§ āĻĒāĻžāĻāĻ¯āĻŧāĻž āĻ¯ā§āĻ¤ā§ āĻĒāĻžāĻ°ā§āĨ¤
āĻā§āĻŽāĻŋāĻāĻž
āĻĒā§āĻ°āĻžāĻĨāĻŽāĻŋāĻ āĻāĻ¤ā§āĻ¸ āĻ āĻ¨ā§āĻ¸āĻ¨ā§āĻ§āĻžāĻ¨ āĻāĻŦāĻ āĻĒāĻĄāĻŧāĻž āĻĨā§āĻā§ āĻ¨āĻŋāĻā§āĻā§ āĻāĻŦāĻ āĻĒāĻžāĻ āĻāĻĻā§āĻ° āĻŦāĻžāĻāĻāĻžāĻ¨ā§āĻ° āĻāĻ¨ā§āĻ¯, āĻĒāĻĻā§āĻ§āĻ¤āĻŋāĻ° āĻŦāĻ°ā§āĻŖāĻ¨āĻžāĻ° āĻ˛āĻŋāĻā§āĻāĻā§āĻ˛āĻŋ āĻŽā§āĻ˛āĻ¤ āĻāĻāĻāĻŋāĻĒāĻŋāĻĄāĻŋāĻ¯āĻŧāĻžāĻ¯āĻŧ āĻĨāĻžāĻāĻŦā§āĨ¤ āĻāĻāĻāĻŋ āĻ¨āĻŋāĻ¯āĻŧāĻŽ āĻšāĻŋāĻ¸āĻžāĻŦā§, āĻāĻ āĻ¤āĻĨā§āĻ¯ āĻ¸āĻžāĻ§āĻžāĻ°āĻŖ āĻļāĻ°ā§āĻ¤āĻžāĻŦāĻ˛ā§ āĻāĻŦāĻ āĻ¤āĻžāĻĻā§āĻ° āĻāĻŦā§āĻĻāĻ¨ā§āĻ° āĻļāĻ°ā§āĻ¤āĻžāĻŦāĻ˛ā§ āĻŦā§āĻāĻžāĻ° āĻāĻ¨ā§āĻ¯ āĻ¯āĻĨā§āĻˇā§āĻāĨ¤ āĻāĻžāĻŖāĻŋāĻ¤āĻŋāĻ āĻĒāĻĻā§āĻ§āĻ¤āĻŋāĻ° āĻ¸āĻžāĻ°āĻŽāĻ°ā§āĻŽ āĻŦā§āĻāĻžāĻ° āĻāĻ¨ā§āĻ¯, āĻāĻ°āĻ āĻĒā§āĻ°āĻžāĻŽāĻžāĻŖāĻŋāĻ āĻĒā§āĻ°āĻāĻžāĻļāĻ¨āĻžāĻ° āĻ˛āĻŋāĻā§āĻāĻā§āĻ˛āĻŋ āĻ āĻ¨ā§āĻ¸āĻ°āĻŖ āĻāĻ°ā§āĻ¨, āĻ¯āĻž āĻĒā§āĻ°āĻ¤āĻŋāĻāĻŋ āĻ¨āĻŋāĻŦāĻ¨ā§āĻ§ā§āĻ° āĻļā§āĻˇā§ āĻŦāĻž āĻāĻĒāĻ¨āĻžāĻ° āĻĒā§āĻ°āĻŋāĻ¯āĻŧ āĻ¸āĻžāĻ°ā§āĻ āĻāĻā§āĻāĻŋāĻ¨ā§ āĻĒāĻžāĻāĻ¯āĻŧāĻž āĻ¯āĻžāĻŦā§āĨ¤
āĻ¸ā§āĻ¤āĻ°āĻžāĻ, scipy.optimize āĻŽāĻĄāĻŋāĻāĻ˛ āĻ¨āĻŋāĻŽā§āĻ¨āĻ˛āĻŋāĻāĻŋāĻ¤ āĻĒāĻĻā§āĻ§āĻ¤āĻŋāĻ° āĻŦāĻžāĻ¸ā§āĻ¤āĻŦāĻžāĻ¯āĻŧāĻ¨ āĻ āĻ¨ā§āĻ¤āĻ°ā§āĻā§āĻā§āĻ¤ āĻāĻ°ā§:
- āĻŦāĻŋāĻāĻŋāĻ¨ā§āĻ¨ āĻ
ā§āĻ¯āĻžāĻ˛āĻāĻ°āĻŋāĻĻāĻŽ (āĻ¨ā§āĻ˛ā§āĻĄāĻžāĻ°-āĻŽāĻŋāĻĄ āĻ¸āĻŋāĻŽāĻĒā§āĻ˛ā§āĻā§āĻ¸, āĻŦāĻŋāĻāĻĢāĻāĻŋāĻāĻ¸, āĻ¨āĻŋāĻāĻāĻ¨ āĻāĻ¨āĻā§āĻā§āĻ āĻā§āĻ°ā§āĻĄāĻŋāĻ¯āĻŧā§āĻ¨ā§āĻāĻ¸,
āĻā§āĻŦāĻžāĻāĻ˛āĻž иāĻāĻ¸āĻāĻ˛āĻāĻ¸āĻāĻŋāĻāĻĒāĻŋ ) - āĻā§āĻ˛ā§āĻŦāĻžāĻ˛ āĻ
āĻĒā§āĻāĻŋāĻŽāĻžāĻāĻā§āĻļāĻžāĻ¨ (āĻāĻĻāĻžāĻšāĻ°āĻŖāĻ¸ā§āĻŦāĻ°ā§āĻĒ:
āĻŦā§āĻ¸āĻŋāĻ¨āĻšāĻĒāĻŋāĻ ,āĻĒāĻžāĻ°ā§āĻĨāĻā§āĻ¯_āĻŦāĻŋāĻŦāĻ°ā§āĻ¤āĻ¨ ) - āĻ¨ā§āĻ¯ā§āĻ¨āĻ¤āĻŽ āĻ
āĻŦāĻļāĻŋāĻˇā§āĻāĻžāĻāĻļ
MNC (least_squares) āĻāĻŦāĻ āĻ āĻ°ā§āĻāĻŋāĻ āĻ¨ā§āĻ¯ā§āĻ¨āĻ¤āĻŽ āĻŦāĻ°ā§āĻāĻā§āĻˇā§āĻ¤ā§āĻ° āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°ā§ āĻŦāĻā§āĻ°āĻ°ā§āĻāĻž āĻĢāĻŋāĻāĻŋāĻ āĻ ā§āĻ¯āĻžāĻ˛āĻāĻ°āĻŋāĻĻāĻŽ (āĻŦāĻā§āĻ°_āĻĢāĻŋāĻ) - āĻāĻāĻāĻŋ āĻā§āĻ°āĻŋāĻ¯āĻŧā§āĻŦāĻ˛ā§āĻ° āĻ¸ā§āĻā§āĻ˛āĻžāĻ° āĻĢāĻžāĻāĻļāĻ¨ āĻŽāĻŋāĻ¨āĻŋāĻŽāĻžāĻāĻ āĻāĻ°āĻž (minim_scalar) āĻāĻŦāĻ āĻ°ā§āĻ (root_scalar) āĻ āĻ¨ā§āĻ¸āĻ¨ā§āĻ§āĻžāĻ¨ āĻāĻ°āĻž
- āĻŦāĻŋāĻāĻŋāĻ¨ā§āĻ¨ āĻ
ā§āĻ¯āĻžāĻ˛āĻāĻ°āĻŋāĻĻāĻŽ (āĻšāĻžāĻāĻŦā§āĻ°āĻŋāĻĄ āĻĒāĻžāĻāĻ¯āĻŧā§āĻ˛,
āĻ˛ā§āĻā§āĻ¨āĻŦāĻžāĻ°ā§āĻ-āĻŽāĻžāĻ°ā§āĻā§āĻ¯āĻŧāĻžāĻ°ā§āĻĄ āĻŦāĻž āĻŦāĻĄāĻŧ āĻāĻāĻžāĻ°ā§āĻ° āĻĒāĻĻā§āĻ§āĻ¤āĻŋ āĻ¯ā§āĻŽāĻ¨āĻ¨āĻŋāĻāĻāĻ¨-āĻā§āĻ°āĻŋāĻ˛āĻ ).
āĻāĻ āĻ¨āĻŋāĻŦāĻ¨ā§āĻ§ā§ āĻāĻŽāĻ°āĻž āĻāĻ āĻ¸āĻŽā§āĻĒā§āĻ°ā§āĻŖ āĻ¤āĻžāĻ˛āĻŋāĻāĻž āĻĨā§āĻā§ āĻļā§āĻ§ā§āĻŽāĻžāĻ¤ā§āĻ° āĻĒā§āĻ°āĻĨāĻŽ āĻāĻāĻā§āĻŽ āĻŦāĻŋāĻŦā§āĻāĻ¨āĻž āĻāĻ°āĻŦāĨ¤
āĻŦā§āĻļ āĻāĻ¯āĻŧā§āĻāĻāĻŋ āĻā§āĻ°āĻŋāĻ¯āĻŧā§āĻŦāĻ˛ā§āĻ° āĻāĻāĻāĻŋ āĻ¸ā§āĻā§āĻ˛āĻžāĻ° āĻĢāĻžāĻāĻļāĻ¨ā§āĻ° āĻļāĻ°ā§āĻ¤āĻšā§āĻ¨ āĻ¨ā§āĻ¯ā§āĻ¨āĻ¤āĻŽāĻāĻ°āĻŖ
scipy.optimize āĻĒā§āĻ¯āĻžāĻā§āĻ āĻĨā§āĻā§ āĻ¨ā§āĻ¯ā§āĻ¨āĻ¤āĻŽ āĻĢāĻžāĻāĻļāĻ¨ āĻŦā§āĻļ āĻāĻ¯āĻŧā§āĻāĻāĻŋ āĻā§āĻ°āĻŋāĻ¯āĻŧā§āĻŦāĻ˛ā§āĻ° āĻ¸ā§āĻā§āĻ˛āĻžāĻ° āĻĢāĻžāĻāĻļāĻ¨ā§āĻ° āĻļāĻ°ā§āĻ¤āĻ¸āĻžāĻĒā§āĻā§āĻˇ āĻāĻŦāĻ āĻļāĻ°ā§āĻ¤āĻšā§āĻ¨ āĻ¨ā§āĻ¯ā§āĻ¨āĻ¤āĻŽāĻāĻ°āĻŖ āĻ¸āĻŽāĻ¸ā§āĻ¯āĻž āĻ¸āĻŽāĻžāĻ§āĻžāĻ¨ā§āĻ° āĻāĻ¨ā§āĻ¯ āĻāĻāĻāĻŋ āĻ¸āĻžāĻ§āĻžāĻ°āĻŖ āĻāĻ¨ā§āĻāĻžāĻ°āĻĢā§āĻ¸ āĻĒā§āĻ°āĻĻāĻžāĻ¨ āĻāĻ°ā§āĨ¤ āĻāĻāĻŋ āĻā§āĻāĻžāĻŦā§ āĻāĻžāĻ āĻāĻ°ā§ āĻ¤āĻž āĻĒā§āĻ°āĻĻāĻ°ā§āĻļāĻ¨ āĻāĻ°āĻžāĻ° āĻāĻ¨ā§āĻ¯, āĻāĻŽāĻžāĻĻā§āĻ° āĻŦā§āĻļ āĻāĻ¯āĻŧā§āĻāĻāĻŋ āĻā§āĻ°āĻŋāĻ¯āĻŧā§āĻŦāĻ˛ā§āĻ° āĻāĻāĻāĻŋ āĻāĻĒāĻ¯ā§āĻā§āĻ¤ āĻĢāĻžāĻāĻļāĻ¨ āĻĒā§āĻ°āĻ¯āĻŧā§āĻāĻ¨, āĻ¯āĻž āĻāĻŽāĻ°āĻž āĻŦāĻŋāĻāĻŋāĻ¨ā§āĻ¨ āĻāĻĒāĻžāĻ¯āĻŧā§ āĻā§āĻ āĻāĻ°āĻŦāĨ¤
āĻāĻ āĻāĻĻā§āĻĻā§āĻļā§āĻ¯ā§, N āĻā§āĻ°āĻŋāĻ¯āĻŧā§āĻŦāĻ˛ā§āĻ° āĻ°ā§āĻā§āĻ¨āĻŦā§āĻ°āĻ āĻĢāĻžāĻāĻļāĻ¨āĻāĻŋ āĻ¨āĻŋāĻā§āĻāĻ¤, āĻ¯āĻžāĻ° āĻĢāĻ°ā§āĻŽ āĻ°āĻ¯āĻŧā§āĻā§:
āĻ°ā§āĻā§āĻ¨āĻŦā§āĻ°āĻ āĻĢāĻžāĻāĻļāĻ¨ āĻāĻŦāĻ āĻāĻ° āĻā§āĻ¯āĻžāĻāĻŦāĻŋ āĻāĻŦāĻ āĻšā§āĻ¸āĻŋāĻ¯āĻŧāĻžāĻ¨ āĻŽā§āĻ¯āĻžāĻā§āĻ°āĻŋāĻ¸āĻŋāĻ¸ (āĻ¯āĻĨāĻžāĻā§āĻ°āĻŽā§ āĻĒā§āĻ°āĻĨāĻŽ āĻāĻŦāĻ āĻĻā§āĻŦāĻŋāĻ¤ā§āĻ¯āĻŧ āĻĄā§āĻ°āĻŋāĻā§āĻāĻŋāĻāĻ¸) āĻāĻ¤āĻŋāĻŽāĻ§ā§āĻ¯ā§ scipy.optimize āĻĒā§āĻ¯āĻžāĻā§āĻā§ āĻ¸āĻāĻā§āĻāĻžāĻ¯āĻŧāĻŋāĻ¤ āĻāĻ°āĻž āĻ¸āĻ¤ā§āĻ¤ā§āĻŦā§āĻ, āĻāĻŽāĻ°āĻž āĻ¨āĻŋāĻā§āĻ°āĻžāĻ āĻāĻāĻŋ āĻ¸āĻāĻā§āĻāĻžāĻ¯āĻŧāĻŋāĻ¤ āĻāĻ°āĻŦāĨ¤
import numpy as np
def rosen(x):
"""The Rosenbrock function"""
return np.sum(100.0*(x[1:]-x[:-1]**2.0)**2.0 + (1-x[:-1])**2.0, axis=0)
āĻ¸ā§āĻŦāĻā§āĻāĻ¤āĻžāĻ° āĻāĻ¨ā§āĻ¯, āĻĻā§āĻāĻŋ āĻā§āĻ°āĻŋāĻ¯āĻŧā§āĻŦāĻ˛ā§āĻ° āĻ°ā§āĻā§āĻ¨āĻŦā§āĻ°āĻ āĻĢāĻžāĻāĻļāĻ¨ā§āĻ° āĻŽāĻžāĻ¨ 3D-āĻ āĻāĻāĻā§āĻ¨āĨ¤
āĻ āĻā§āĻāĻ¨ āĻā§āĻĄ
from mpl_toolkits.mplot3d import Axes3D
import matplotlib.pyplot as plt
from matplotlib import cm
from matplotlib.ticker import LinearLocator, FormatStrFormatter
# ĐĐ°ŅŅŅаиваĐĩĐŧ 3D ĐŗŅĐ°ŅиĐē
fig = plt.figure(figsize=[15, 10])
ax = fig.gca(projection='3d')
# ĐĐ°Đ´Đ°ĐĩĐŧ ŅĐŗĐžĐģ ОйСОŅĐ°
ax.view_init(45, 30)
# ХОСдаĐĩĐŧ Đ´Đ°ĐŊĐŊŅĐĩ Đ´ĐģŅ ĐŗŅĐ°ŅиĐēĐ°
X = np.arange(-2, 2, 0.1)
Y = np.arange(-1, 3, 0.1)
X, Y = np.meshgrid(X, Y)
Z = rosen(np.array([X,Y]))
# РиŅŅĐĩĐŧ ĐŋОвĐĩŅŅ
ĐŊĐžŅŅŅ
surf = ax.plot_surface(X, Y, Z, cmap=cm.coolwarm)
plt.show()
āĻ¸āĻ°ā§āĻŦāĻ¨āĻŋāĻŽā§āĻ¨ 0 āĻ āĻ¯ā§ āĻ āĻā§āĻ°āĻŋāĻŽ āĻā§āĻ¨ā§ , āĻāĻ¸ā§āĻ¨ āĻŦāĻŋāĻāĻŋāĻ¨ā§āĻ¨ scipy.optimize āĻĒāĻĻā§āĻ§āĻ¤āĻŋ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°ā§ āĻ°ā§āĻā§āĻ¨āĻŦā§āĻ°āĻ āĻĢāĻžāĻāĻļāĻ¨ā§āĻ° āĻ¨ā§āĻ¯ā§āĻ¨āĻ¤āĻŽ āĻŽāĻžāĻ¨ āĻā§āĻāĻžāĻŦā§ āĻ¨āĻŋāĻ°ā§āĻ§āĻžāĻ°āĻŖ āĻāĻ°āĻž āĻ¯āĻžāĻ¯āĻŧ āĻ¤āĻžāĻ° āĻāĻĻāĻžāĻšāĻ°āĻŖ āĻĻā§āĻāĻŋāĨ¤
āĻ¨ā§āĻ˛ā§āĻĄāĻžāĻ°-āĻŽāĻŋāĻĄ āĻ¸āĻŋāĻŽāĻĒā§āĻ˛ā§āĻā§āĻ¸ āĻĒāĻĻā§āĻ§āĻ¤āĻŋ
0-āĻŽāĻžāĻ¤ā§āĻ°āĻŋāĻ āĻ¸ā§āĻĨāĻžāĻ¨ā§ āĻāĻāĻāĻŋ āĻĒā§āĻ°āĻžāĻĨāĻŽāĻŋāĻ āĻŦāĻŋāĻ¨ā§āĻĻā§ x5 āĻĨāĻžāĻā§āĻāĨ¤ āĻ
ā§āĻ¯āĻžāĻ˛āĻāĻ°āĻŋāĻĻāĻŽ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°ā§ āĻāĻ° āĻ¸āĻŦāĻā§āĻ¯āĻŧā§ āĻāĻžāĻā§āĻ° āĻ°ā§āĻā§āĻ¨āĻŦā§āĻ°āĻ āĻĢāĻžāĻāĻļāĻ¨ā§āĻ° āĻ¨ā§āĻ¯ā§āĻ¨āĻ¤āĻŽ āĻĒāĻ¯āĻŧā§āĻ¨ā§āĻāĻāĻŋ āĻā§āĻāĻā§ āĻŦā§āĻ° āĻāĻ°āĻž āĻ¯āĻžāĻ
from scipy.optimize import minimize
x0 = np.array([1.3, 0.7, 0.8, 1.9, 1.2])
res = minimize(rosen, x0, method='nelder-mead',
options={'xtol': 1e-8, 'disp': True})
print(res.x)
Optimization terminated successfully.
Current function value: 0.000000
Iterations: 339
Function evaluations: 571
[1. 1. 1. 1. 1.]
āĻ¸āĻŋāĻŽāĻĒā§āĻ˛ā§āĻā§āĻ¸ āĻĒāĻĻā§āĻ§āĻ¤āĻŋ āĻšāĻ˛ āĻāĻāĻāĻŋ āĻ¸ā§āĻ¸ā§āĻĒāĻˇā§āĻāĻāĻžāĻŦā§ āĻ¸āĻāĻā§āĻāĻžāĻ¯āĻŧāĻŋāĻ¤ āĻāĻŦāĻ āĻŽā§āĻāĻžāĻŽā§āĻāĻŋ āĻŽāĻ¸ā§āĻŖ āĻĢāĻžāĻāĻļāĻ¨ āĻāĻŽāĻžāĻ¨ā§āĻ° āĻ¸āĻŦāĻā§āĻ¯āĻŧā§ āĻ¸āĻšāĻ āĻāĻĒāĻžāĻ¯āĻŧāĨ¤ āĻāĻāĻŋāĻ° āĻāĻ¨ā§āĻ¯ āĻāĻāĻāĻŋ āĻĢāĻžāĻāĻļāĻ¨ā§āĻ° āĻĄā§āĻ°āĻŋāĻā§āĻāĻŋāĻ āĻāĻŖāĻ¨āĻž āĻāĻ°āĻžāĻ° āĻĒā§āĻ°āĻ¯āĻŧā§āĻāĻ¨ āĻ¨ā§āĻ; āĻāĻāĻŋ āĻļā§āĻ§ā§āĻŽāĻžāĻ¤ā§āĻ° āĻāĻ° āĻŽāĻžāĻ¨āĻā§āĻ˛āĻŋ āĻ¨āĻŋāĻ°ā§āĻĻāĻŋāĻˇā§āĻ āĻāĻ°āĻžāĻ° āĻāĻ¨ā§āĻ¯ āĻ¯āĻĨā§āĻˇā§āĻāĨ¤ āĻ¨ā§āĻ˛ā§āĻĄāĻžāĻ°-āĻŽāĻŋāĻĄ āĻĒāĻĻā§āĻ§āĻ¤āĻŋāĻāĻŋ āĻ¸āĻšāĻ āĻŽāĻŋāĻ¨āĻŋāĻŽāĻžāĻāĻā§āĻļāĻ¨ āĻ¸āĻŽāĻ¸ā§āĻ¯āĻžāĻ° āĻāĻ¨ā§āĻ¯ āĻāĻāĻāĻŋ āĻāĻžāĻ˛ āĻĒāĻāĻ¨ā§āĻĻāĨ¤ āĻ¯āĻžāĻāĻšā§āĻ, āĻ¯ā§āĻšā§āĻ¤ā§ āĻāĻāĻŋ āĻā§āĻ°ā§āĻĄāĻŋāĻ¯āĻŧā§āĻ¨ā§āĻ āĻ āĻ¨ā§āĻŽāĻžāĻ¨ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°ā§ āĻ¨āĻž, āĻāĻāĻŋ āĻ¨ā§āĻ¯ā§āĻ¨āĻ¤āĻŽ āĻā§āĻāĻā§ āĻĒā§āĻ¤ā§ āĻāĻ°āĻ āĻŦā§āĻļāĻŋ āĻ¸āĻŽāĻ¯āĻŧ āĻ¨āĻŋāĻ¤ā§ āĻĒāĻžāĻ°ā§āĨ¤
āĻĒāĻžāĻāĻ¯āĻŧā§āĻ˛ āĻĒāĻĻā§āĻ§āĻ¤āĻŋ
āĻāĻ°ā§āĻāĻāĻŋ āĻ
āĻĒā§āĻāĻŋāĻŽāĻžāĻāĻā§āĻļāĻžāĻ¨ āĻ
ā§āĻ¯āĻžāĻ˛āĻāĻ°āĻŋāĻĻāĻŽ āĻ¯ā§āĻāĻžāĻ¨ā§ āĻļā§āĻ§ā§āĻŽāĻžāĻ¤ā§āĻ° āĻĢāĻžāĻāĻļāĻ¨ā§āĻ° āĻŽāĻžāĻ¨ āĻāĻŖāĻ¨āĻž āĻāĻ°āĻž āĻšāĻ¯āĻŧ
x0 = np.array([1.3, 0.7, 0.8, 1.9, 1.2])
res = minimize(rosen, x0, method='powell',
options={'xtol': 1e-8, 'disp': True})
print(res.x)
Optimization terminated successfully.
Current function value: 0.000000
Iterations: 19
Function evaluations: 1622
[1. 1. 1. 1. 1.]
Broyden-Fletcher-Goldfarb-Shanno (BFGS) āĻ ā§āĻ¯āĻžāĻ˛āĻāĻ°āĻŋāĻĻāĻŽ
āĻāĻāĻāĻŋ āĻ¸āĻŽāĻžāĻ§āĻžāĻ¨ āĻĻā§āĻ°ā§āĻ¤ āĻ
āĻāĻŋāĻ¸āĻžāĻ°ā§ āĻĒā§āĻ°āĻžāĻĒā§āĻ¤ āĻāĻ°āĻžāĻ° āĻāĻ¨ā§āĻ¯, āĻĒāĻĻā§āĻ§āĻ¤āĻŋ
āĻāĻ¸ā§āĻ¨ āĻŦāĻŋāĻļā§āĻ˛ā§āĻˇāĻŖāĻžāĻ¤ā§āĻŽāĻ āĻāĻāĻžāĻ°ā§ āĻ°ā§āĻā§āĻ¨āĻŦā§āĻ°āĻ āĻĢāĻžāĻāĻļāĻ¨ā§āĻ° āĻĄā§āĻ°āĻŋāĻā§āĻāĻŋāĻ āĻā§āĻāĻā§ āĻŦā§āĻ° āĻāĻ°āĻŋ:
āĻāĻ āĻ āĻāĻŋāĻŦā§āĻ¯āĻā§āĻ¤āĻŋāĻāĻŋ āĻĒā§āĻ°āĻĨāĻŽ āĻāĻŦāĻ āĻļā§āĻˇ āĻŦā§āĻ¯āĻ¤ā§āĻ¤ āĻ¸āĻŽāĻ¸ā§āĻ¤ āĻā§āĻ°āĻŋāĻ¯āĻŧā§āĻŦāĻ˛ā§āĻ° āĻĄā§āĻ°āĻŋāĻā§āĻāĻŋāĻā§āĻ° āĻāĻ¨ā§āĻ¯ āĻŦā§āĻ§, āĻ¯āĻž āĻāĻāĻāĻžāĻŦā§ āĻ¸āĻāĻā§āĻāĻžāĻ¯āĻŧāĻŋāĻ¤ āĻāĻ°āĻž āĻšāĻ¯āĻŧā§āĻā§:
āĻāĻ¸ā§āĻ¨ āĻĒāĻžāĻāĻĨāĻ¨ āĻĢāĻžāĻāĻļāĻ¨āĻāĻŋ āĻĻā§āĻāĻŋ āĻ¯āĻž āĻāĻ āĻā§āĻ°ā§āĻĄāĻŋāĻ¯āĻŧā§āĻ¨ā§āĻāĻāĻŋ āĻāĻŖāĻ¨āĻž āĻāĻ°ā§:
def rosen_der (x):
xm = x [1: -1]
xm_m1 = x [: - 2]
xm_p1 = x [2:]
der = np.zeros_like (x)
der [1: -1] = 200 * (xm-xm_m1 ** 2) - 400 * (xm_p1 - xm ** 2) * xm - 2 * (1-xm)
der [0] = -400 * x [0] * (x [1] -x [0] ** 2) - 2 * (1-x [0])
der [-1] = 200 * (x [-1] -x [-2] ** 2)
return der
āĻā§āĻ°ā§āĻĄāĻŋāĻ¯āĻŧā§āĻ¨ā§āĻ āĻā§āĻ¯āĻžāĻ˛āĻā§āĻ˛ā§āĻļāĻ¨ āĻĢāĻžāĻāĻļāĻ¨āĻāĻŋ āĻŽāĻŋāĻ¨āĻŋāĻŽ āĻĢāĻžāĻāĻļāĻ¨ā§āĻ° jac āĻĒā§āĻ¯āĻžāĻ°āĻžāĻŽāĻŋāĻāĻžāĻ°ā§āĻ° āĻŽāĻžāĻ¨ āĻšāĻŋāĻ¸āĻžāĻŦā§ āĻ¨āĻŋāĻ°ā§āĻĻāĻŋāĻˇā§āĻ āĻāĻ°āĻž āĻšāĻ¯āĻŧā§āĻā§, āĻ¯ā§āĻŽāĻ¨āĻāĻŋ āĻ¨ā§āĻā§ āĻĻā§āĻāĻžāĻ¨ā§ āĻšāĻ¯āĻŧā§āĻā§āĨ¤
res = minimize(rosen, x0, method='BFGS', jac=rosen_der, options={'disp': True})
print(res.x)
Optimization terminated successfully.
Current function value: 0.000000
Iterations: 25
Function evaluations: 30
Gradient evaluations: 30
[1.00000004 1.0000001 1.00000021 1.00000044 1.00000092]
āĻāĻ¨āĻā§āĻā§āĻ āĻā§āĻ°ā§āĻĄāĻŋāĻ¯āĻŧā§āĻ¨ā§āĻ āĻ ā§āĻ¯āĻžāĻ˛āĻāĻ°āĻŋāĻĻāĻŽ (āĻ¨āĻŋāĻāĻāĻ¨)
āĻ
ā§āĻ¯āĻžāĻ˛āĻāĻ°āĻŋāĻĻāĻŽ
āĻ¨āĻŋāĻāĻāĻ¨ā§āĻ° āĻĒāĻĻā§āĻ§āĻ¤āĻŋāĻāĻŋ āĻĻā§āĻŦāĻŋāĻ¤ā§āĻ¯āĻŧ āĻĄāĻŋāĻā§āĻ°āĻŋāĻ° āĻŦāĻšā§āĻĒāĻĻā§ āĻĻā§āĻŦāĻžāĻ°āĻž āĻ¸ā§āĻĨāĻžāĻ¨ā§āĻ¯āĻŧ āĻāĻ˛āĻžāĻāĻžāĻ¯āĻŧ āĻāĻāĻāĻŋ āĻĢāĻžāĻāĻļāĻ¨ āĻāĻ¨ā§āĻŽāĻžāĻ¨āĻŋāĻ āĻāĻ°āĻžāĻ° āĻāĻĒāĻ° āĻāĻŋāĻ¤ā§āĻ¤āĻŋ āĻāĻ°ā§:
āĻ¯ā§āĻāĻžāĻ¨ā§ āĻĻā§āĻŦāĻŋāĻ¤ā§āĻ¯āĻŧ āĻĄā§āĻ°āĻŋāĻā§āĻāĻŋāĻā§āĻ° āĻŽā§āĻ¯āĻžāĻā§āĻ°āĻŋāĻā§āĻ¸ (āĻšā§āĻ¸āĻŋāĻ¯āĻŧāĻžāĻ¨ āĻŽā§āĻ¯āĻžāĻā§āĻ°āĻŋāĻā§āĻ¸, āĻšā§āĻ¸āĻŋāĻ¯āĻŧāĻžāĻ¨)āĨ¤
āĻ¯āĻĻāĻŋ āĻšā§āĻ¸āĻŋāĻ¯āĻŧāĻžāĻ¨ āĻ§āĻ¨āĻžāĻ¤ā§āĻŽāĻ āĻ¸ā§āĻ¨āĻŋāĻ°ā§āĻĻāĻŋāĻˇā§āĻ āĻšāĻ¯āĻŧ, āĻ¤āĻžāĻšāĻ˛ā§ āĻāĻ āĻĢāĻžāĻāĻļāĻ¨ā§āĻ° āĻ¸ā§āĻĨāĻžāĻ¨ā§āĻ¯āĻŧ āĻ¨ā§āĻ¯ā§āĻ¨āĻ¤āĻŽ āĻĒāĻžāĻāĻ¯āĻŧāĻž āĻ¯āĻžāĻŦā§ āĻĻā§āĻŦāĻŋāĻāĻžāĻ¤ āĻĢāĻ°ā§āĻŽā§āĻ° āĻļā§āĻ¨ā§āĻ¯ āĻā§āĻ°ā§āĻĄāĻŋāĻ¯āĻŧā§āĻ¨ā§āĻāĻā§ āĻļā§āĻ¨ā§āĻ¯ā§āĻ° āĻ¸āĻžāĻĨā§ āĻ¸āĻŽāĻžāĻ¨ āĻāĻ°ā§āĨ¤ āĻĢāĻ˛āĻžāĻĢāĻ˛ āĻ
āĻāĻŋāĻŦā§āĻ¯āĻā§āĻ¤āĻŋ āĻšāĻŦā§:
āĻŦāĻŋāĻĒāĻ°ā§āĻ¤ āĻšā§āĻ¸āĻŋāĻ¯āĻŧāĻžāĻ¨ āĻāĻ¨āĻā§āĻā§āĻ āĻā§āĻ°ā§āĻĄāĻŋāĻ¯āĻŧā§āĻ¨ā§āĻ āĻĒāĻĻā§āĻ§āĻ¤āĻŋ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°ā§ āĻāĻŖāĻ¨āĻž āĻāĻ°āĻž āĻšāĻ¯āĻŧāĨ¤ āĻ°ā§āĻā§āĻ¨āĻŦā§āĻ°āĻ āĻĢāĻžāĻāĻļāĻ¨āĻāĻŋ āĻā§āĻ āĻāĻ°āĻ¤ā§ āĻāĻ āĻĒāĻĻā§āĻ§āĻ¤āĻŋāĻāĻŋ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°āĻžāĻ° āĻāĻāĻāĻŋ āĻāĻĻāĻžāĻšāĻ°āĻŖ āĻ¨ā§āĻā§ āĻĻā§āĻāĻ¯āĻŧāĻž āĻšāĻ¯āĻŧā§āĻā§āĨ¤ āĻ¨āĻŋāĻāĻāĻ¨-āĻ¸āĻŋāĻāĻŋ āĻĒāĻĻā§āĻ§āĻ¤āĻŋ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°āĻ¤ā§, āĻāĻĒāĻ¨āĻžāĻā§ āĻ
āĻŦāĻļā§āĻ¯āĻ āĻāĻāĻāĻŋ āĻĢāĻžāĻāĻļāĻ¨ āĻ¨āĻŋāĻ°ā§āĻĻāĻŋāĻˇā§āĻ āĻāĻ°āĻ¤ā§ āĻšāĻŦā§ āĻ¯āĻž āĻšā§āĻ¸āĻŋāĻ¯āĻŧāĻžāĻ¨ āĻāĻŖāĻ¨āĻž āĻāĻ°ā§āĨ¤
āĻŦāĻŋāĻļā§āĻ˛ā§āĻˇāĻŖāĻžāĻ¤ā§āĻŽāĻ āĻāĻāĻžāĻ°ā§ āĻ°ā§āĻā§āĻ¨āĻŦā§āĻ°āĻ āĻĢāĻžāĻāĻļāĻ¨ā§āĻ° āĻšā§āĻ¸āĻŋāĻ¯āĻŧāĻžāĻ¨ āĻ¸āĻŽāĻžāĻ¨:
āĻ¯ā§āĻāĻžāĻ¨ā§ и , āĻŽā§āĻ¯āĻžāĻā§āĻ°āĻŋāĻā§āĻ¸ āĻ¸āĻāĻā§āĻāĻžāĻ¯āĻŧāĻŋāĻ¤ āĻāĻ°ā§āĻ¨ .
āĻŽā§āĻ¯āĻžāĻā§āĻ°āĻŋāĻā§āĻ¸ā§āĻ° āĻ āĻŦāĻļāĻŋāĻˇā§āĻ āĻ -āĻļā§āĻ¨ā§āĻ¯ āĻāĻĒāĻžāĻĻāĻžāĻ¨āĻā§āĻ˛āĻŋ āĻ¸āĻŽāĻžāĻ¨:
āĻāĻĻāĻžāĻšāĻ°āĻŖāĻ¸ā§āĻŦāĻ°ā§āĻĒ, āĻāĻāĻāĻŋ āĻĒāĻā§āĻ-āĻŽāĻžāĻ¤ā§āĻ°āĻŋāĻ āĻ¸ā§āĻĨāĻžāĻ¨ N = 5-āĻ, āĻ°ā§āĻā§āĻ¨āĻŦā§āĻ°āĻ āĻĢāĻžāĻāĻļāĻ¨ā§āĻ° āĻāĻ¨ā§āĻ¯ āĻšā§āĻ¸āĻŋāĻ¯āĻŧāĻžāĻ¨ āĻŽā§āĻ¯āĻžāĻā§āĻ°āĻŋāĻā§āĻ¸ āĻāĻāĻāĻŋ āĻŦā§āĻ¯āĻžāĻ¨ā§āĻĄā§āĻ° āĻāĻāĻžāĻ° āĻ§āĻžāĻ°āĻŖ āĻāĻ°ā§:
āĻ¯ā§ āĻā§āĻĄāĻāĻŋ āĻāĻ¨āĻā§āĻā§āĻ āĻā§āĻ°ā§āĻĄāĻŋāĻ¯āĻŧā§āĻ¨ā§āĻ (āĻ¨āĻŋāĻāĻāĻ¨) āĻĒāĻĻā§āĻ§āĻ¤āĻŋ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°ā§ āĻ°ā§āĻā§āĻ¨āĻŦā§āĻ°āĻ āĻĢāĻžāĻāĻļāĻ¨āĻāĻŋ āĻā§āĻ āĻāĻ°āĻžāĻ° āĻāĻ¨ā§āĻ¯ āĻā§āĻĄ āĻ¸āĻš āĻāĻ āĻšā§āĻ¸āĻŋāĻ¯āĻŧāĻžāĻ¨ āĻāĻŖāĻ¨āĻž āĻāĻ°ā§:
def rosen_hess(x):
x = np.asarray(x)
H = np.diag(-400*x[:-1],1) - np.diag(400*x[:-1],-1)
diagonal = np.zeros_like(x)
diagonal[0] = 1200*x[0]**2-400*x[1]+2
diagonal[-1] = 200
diagonal[1:-1] = 202 + 1200*x[1:-1]**2 - 400*x[2:]
H = H + np.diag(diagonal)
return H
res = minimize(rosen, x0, method='Newton-CG',
jac=rosen_der, hess=rosen_hess,
options={'xtol': 1e-8, 'disp': True})
print(res.x)
Optimization terminated successfully.
Current function value: 0.000000
Iterations: 24
Function evaluations: 33
Gradient evaluations: 56
Hessian evaluations: 24
[1. 1. 1. 0.99999999 0.99999999]
āĻšā§āĻ¸āĻŋāĻ¯āĻŧāĻžāĻ¨ āĻāĻŦāĻ āĻāĻāĻāĻŋ āĻ¨āĻŋāĻ°ā§āĻŦāĻŋāĻāĻžāĻ°ā§ āĻā§āĻā§āĻāĻ°ā§āĻ° āĻĒāĻŖā§āĻ¯ āĻĢāĻžāĻāĻļāĻ¨ā§āĻ° āĻ¸āĻāĻā§āĻāĻž āĻ¸āĻš āĻāĻāĻāĻŋ āĻāĻĻāĻžāĻšāĻ°āĻŖ
āĻŦāĻžāĻ¸ā§āĻ¤āĻŦ-āĻŦāĻŋāĻļā§āĻŦā§āĻ° āĻ¸āĻŽāĻ¸ā§āĻ¯āĻžāĻ¯āĻŧ, āĻ¸āĻŽāĻā§āĻ° āĻšā§āĻ¸āĻŋāĻ¯āĻŧāĻžāĻ¨ āĻŽā§āĻ¯āĻžāĻā§āĻ°āĻŋāĻā§āĻ¸ āĻāĻŽā§āĻĒāĻŋāĻāĻāĻŋāĻ āĻāĻŦāĻ āĻ¸āĻāĻ°āĻā§āĻˇāĻŖā§āĻ° āĻāĻ¨ā§āĻ¯ āĻāĻ˛ā§āĻ˛ā§āĻāĻ¯ā§āĻā§āĻ¯ āĻ¸āĻŽāĻ¯āĻŧ āĻāĻŦāĻ āĻŽā§āĻŽāĻ°āĻŋ āĻ¸āĻāĻ¸ā§āĻĨāĻžāĻ¨ āĻĒā§āĻ°āĻ¯āĻŧā§āĻāĻ¨ āĻšāĻ¤ā§ āĻĒāĻžāĻ°ā§āĨ¤ āĻāĻ āĻā§āĻˇā§āĻ¤ā§āĻ°ā§, āĻšā§āĻ¸āĻŋāĻ¯āĻŧāĻžāĻ¨ āĻŽā§āĻ¯āĻžāĻā§āĻ°āĻŋāĻā§āĻ¸ āĻ¨āĻŋāĻā§āĻ āĻ¨āĻŋāĻ°ā§āĻĻāĻŋāĻˇā§āĻ āĻāĻ°āĻžāĻ° āĻā§āĻ¨ āĻĒā§āĻ°āĻ¯āĻŧā§āĻāĻ¨ āĻ¨ā§āĻ, āĻāĻžāĻ°āĻŖ āĻ¨ā§āĻ¯ā§āĻ¨āĻ¤āĻŽāĻāĻ°āĻŖ āĻĒāĻĻā§āĻ§āĻ¤āĻŋāĻ° āĻāĻ¨ā§āĻ¯ āĻā§āĻŦāĻ˛āĻŽāĻžāĻ¤ā§āĻ° āĻšā§āĻ¸āĻŋāĻ¯āĻŧāĻžāĻ¨ā§āĻ° āĻā§āĻŖāĻĢāĻ˛ā§āĻ° āĻ¸āĻŽāĻžāĻ¨ āĻāĻāĻāĻŋ āĻā§āĻā§āĻāĻ° āĻĒā§āĻ°āĻ¯āĻŧā§āĻāĻ¨ āĻ¯āĻžāĻ° āĻ¸āĻžāĻĨā§ āĻ āĻ¨ā§āĻ¯ āĻāĻ°āĻŦāĻŋāĻā§āĻ°āĻžāĻ°āĻŋ āĻā§āĻā§āĻāĻ°āĨ¤ āĻ¸ā§āĻ¤āĻ°āĻžāĻ, āĻāĻāĻāĻŋ āĻāĻŖāĻ¨āĻžāĻāĻ¤ āĻĻā§āĻˇā§āĻāĻŋāĻā§āĻŖ āĻĨā§āĻā§, āĻ āĻŦāĻŋāĻ˛āĻŽā§āĻŦā§ āĻāĻāĻāĻŋ āĻĢāĻžāĻāĻļāĻ¨āĻā§ āĻ¸āĻāĻā§āĻāĻžāĻ¯āĻŧāĻŋāĻ¤ āĻāĻ°āĻž āĻ āĻ¨ā§āĻ āĻŦā§āĻļāĻŋ āĻĒāĻāĻ¨ā§āĻĻāĻ¨ā§āĻ¯āĻŧ āĻ¯ā§āĻāĻŋ āĻāĻāĻāĻŋ āĻ¨āĻŋāĻ°ā§āĻŦāĻŋāĻāĻžāĻ°ā§ āĻā§āĻā§āĻāĻ°ā§āĻ° āĻ¸āĻžāĻĨā§ āĻšā§āĻ¸āĻŋāĻ¯āĻŧāĻžāĻ¨ā§āĻ° āĻā§āĻŖāĻĢāĻ˛ā§āĻ° āĻĢāĻ˛āĻžāĻĢāĻ˛ āĻĒā§āĻ°āĻĻāĻžāĻ¨ āĻāĻ°ā§āĨ¤
āĻšā§āĻ¸ āĻĢāĻžāĻāĻļāĻ¨ āĻŦāĻŋāĻŦā§āĻāĻ¨āĻž āĻāĻ°ā§āĻ¨, āĻ¯āĻž āĻĒā§āĻ°āĻĨāĻŽ āĻāĻ°ā§āĻā§āĻŽā§āĻ¨ā§āĻ āĻšāĻŋāĻ¸āĻžāĻŦā§ āĻŽāĻŋāĻ¨āĻŋāĻŽāĻžāĻāĻā§āĻļāĻ¨ āĻā§āĻā§āĻāĻ° āĻāĻŦāĻ āĻĻā§āĻŦāĻŋāĻ¤ā§āĻ¯āĻŧ āĻāĻ°ā§āĻā§āĻŽā§āĻ¨ā§āĻ āĻšāĻŋāĻ¸āĻžāĻŦā§ āĻāĻāĻāĻŋ āĻ¨āĻŋāĻ°ā§āĻŦāĻŋāĻāĻžāĻ°ā§ āĻā§āĻā§āĻāĻ° āĻ¨ā§āĻ¯āĻŧ (āĻĢāĻžāĻāĻļāĻ¨ā§āĻ° āĻ āĻ¨ā§āĻ¯āĻžāĻ¨ā§āĻ¯ āĻāĻ°ā§āĻā§āĻŽā§āĻ¨ā§āĻā§āĻ° āĻ¸āĻžāĻĨā§ āĻā§āĻ āĻāĻ°āĻž āĻšāĻŦā§)āĨ¤ āĻāĻŽāĻžāĻĻā§āĻ° āĻā§āĻˇā§āĻ¤ā§āĻ°ā§, āĻāĻāĻāĻŋ āĻ¨āĻŋāĻ°ā§āĻŦāĻŋāĻāĻžāĻ°ā§ āĻā§āĻā§āĻāĻ° āĻĻāĻŋāĻ¯āĻŧā§ āĻ°ā§āĻā§āĻ¨āĻŦā§āĻ°āĻ āĻĢāĻžāĻāĻļāĻ¨ā§āĻ° āĻšā§āĻ¸āĻŋāĻ¯āĻŧāĻžāĻ¨ā§āĻ° āĻā§āĻŖāĻĢāĻ˛ āĻāĻŖāĻ¨āĻž āĻāĻ°āĻž āĻā§āĻŦ āĻāĻ āĻŋāĻ¨ āĻ¨āĻ¯āĻŧāĨ¤ āĻ¯āĻĻāĻŋ p āĻāĻāĻāĻŋ āĻ¨āĻŋāĻ°ā§āĻŦāĻŋāĻāĻžāĻ°ā§ āĻā§āĻā§āĻāĻ°, āĻ¤āĻžāĻ°āĻĒāĻ° āĻĒāĻŖā§āĻ¯ āĻĻā§āĻāĻ¤ā§:
āĻ¯ā§ āĻĢāĻžāĻāĻļāĻ¨āĻāĻŋ āĻšā§āĻ¸āĻŋāĻ¯āĻŧāĻžāĻ¨ā§āĻ° āĻā§āĻŖāĻĢāĻ˛ āĻāĻŖāĻ¨āĻž āĻāĻ°ā§ āĻāĻŦāĻ āĻāĻāĻāĻŋ āĻ¨āĻŋāĻ°ā§āĻŦāĻŋāĻāĻžāĻ°ā§ āĻā§āĻā§āĻāĻ°āĻā§ āĻŽāĻŋāĻ¨āĻŋāĻŽāĻžāĻāĻ āĻĢāĻžāĻāĻļāĻ¨ā§ āĻšā§āĻ¸āĻ¸ā§āĻĒ āĻāĻ°ā§āĻā§āĻŽā§āĻ¨ā§āĻā§āĻ° āĻŽāĻžāĻ¨ āĻšāĻŋāĻ¸āĻžāĻŦā§ āĻĒāĻžāĻ¸ āĻāĻ°āĻž āĻšāĻ¯āĻŧ:
def rosen_hess_p(x, p):
x = np.asarray(x)
Hp = np.zeros_like(x)
Hp[0] = (1200*x[0]**2 - 400*x[1] + 2)*p[0] - 400*x[0]*p[1]
Hp[1:-1] = -400*x[:-2]*p[:-2]+(202+1200*x[1:-1]**2-400*x[2:])*p[1:-1]
-400*x[1:-1]*p[2:]
Hp[-1] = -400*x[-2]*p[-2] + 200*p[-1]
return Hp
res = minimize(rosen, x0, method='Newton-CG',
jac=rosen_der, hessp=rosen_hess_p,
options={'xtol': 1e-8, 'disp': True})
Optimization terminated successfully.
Current function value: 0.000000
Iterations: 24
Function evaluations: 33
Gradient evaluations: 56
Hessian evaluations: 66
āĻāĻ¨āĻā§āĻā§āĻ āĻā§āĻ°ā§āĻĄāĻŋāĻ¯āĻŧā§āĻ¨ā§āĻ āĻā§āĻ°āĻžāĻ¸ā§āĻ āĻ āĻā§āĻāĻ˛ āĻ ā§āĻ¯āĻžāĻ˛āĻāĻ°āĻŋāĻĻāĻŽ (āĻ¨āĻŋāĻāĻāĻ¨)
āĻšā§āĻ¸āĻŋāĻ¯āĻŧāĻžāĻ¨ āĻŽā§āĻ¯āĻžāĻā§āĻ°āĻŋāĻā§āĻ¸ā§āĻ° āĻĻā§āĻ°ā§āĻŦāĻ˛ āĻāĻ¨ā§āĻĄāĻŋāĻļāĻ¨āĻŋāĻ āĻāĻŦāĻ āĻā§āĻ˛ āĻ
āĻ¨ā§āĻ¸āĻ¨ā§āĻ§āĻžāĻ¨ā§āĻ° āĻĻāĻŋāĻāĻ¨āĻŋāĻ°ā§āĻĻā§āĻļ āĻ¨āĻŋāĻāĻāĻ¨ā§āĻ° āĻāĻ¨āĻā§āĻā§āĻ āĻā§āĻ°ā§āĻĄāĻŋāĻ¯āĻŧā§āĻ¨ā§āĻ āĻ
ā§āĻ¯āĻžāĻ˛āĻāĻ°āĻŋāĻĻāĻŽāĻā§ āĻ
āĻāĻžāĻ°ā§āĻ¯āĻāĻ° āĻšāĻ¤ā§ āĻĒāĻžāĻ°ā§āĨ¤ āĻāĻ āĻ§āĻ°āĻ¨ā§āĻ° āĻā§āĻˇā§āĻ¤ā§āĻ°ā§, āĻ
āĻā§āĻ°āĻžāĻ§āĻŋāĻāĻžāĻ° āĻĻā§āĻāĻ¯āĻŧāĻž āĻšāĻ¯āĻŧ
āĻšā§āĻ¸āĻŋāĻ¯āĻŧāĻžāĻ¨ āĻŽā§āĻ¯āĻžāĻā§āĻ°āĻŋāĻā§āĻ¸ā§āĻ° āĻ¸āĻāĻā§āĻāĻž āĻ¸āĻš āĻāĻĻāĻžāĻšāĻ°āĻŖ:
res = minimize(rosen, x0, method='trust-ncg',
jac=rosen_der, hess=rosen_hess,
options={'gtol': 1e-8, 'disp': True})
print(res.x)
Optimization terminated successfully.
Current function value: 0.000000
Iterations: 20
Function evaluations: 21
Gradient evaluations: 20
Hessian evaluations: 19
[1. 1. 1. 1. 1.]
āĻšā§āĻ¸āĻŋāĻ¯āĻŧāĻžāĻ¨ āĻāĻŦāĻ āĻāĻāĻāĻŋ āĻ¨āĻŋāĻ°ā§āĻŦāĻŋāĻāĻžāĻ°ā§ āĻā§āĻā§āĻāĻ°ā§āĻ° āĻĒāĻŖā§āĻ¯ āĻĢāĻžāĻāĻļāĻ¨ āĻ¸āĻš āĻāĻĻāĻžāĻšāĻ°āĻŖ:
res = minimize(rosen, x0, method='trust-ncg',
jac=rosen_der, hessp=rosen_hess_p,
options={'gtol': 1e-8, 'disp': True})
print(res.x)
Optimization terminated successfully.
Current function value: 0.000000
Iterations: 20
Function evaluations: 21
Gradient evaluations: 20
Hessian evaluations: 0
[1. 1. 1. 1. 1.]
āĻā§āĻ°āĻŋāĻ˛ā§āĻ āĻāĻžāĻāĻĒ āĻĒāĻĻā§āĻ§āĻ¤āĻŋ
āĻā§āĻ°āĻžāĻ¸ā§āĻ-āĻāĻ¨āĻ¸āĻŋāĻāĻŋ āĻĒāĻĻā§āĻ§āĻ¤āĻŋāĻ° āĻŽāĻ¤ā§, āĻā§āĻ°āĻŋāĻ˛ā§āĻ-āĻāĻžāĻāĻĒ āĻĒāĻĻā§āĻ§āĻ¤āĻŋāĻā§āĻ˛āĻŋ āĻŦāĻĄāĻŧ āĻāĻāĻžāĻ°ā§āĻ° āĻ¸āĻŽāĻ¸ā§āĻ¯āĻž āĻ¸āĻŽāĻžāĻ§āĻžāĻ¨ā§āĻ° āĻāĻ¨ā§āĻ¯ āĻāĻĒāĻ¯ā§āĻā§āĻ¤ āĻāĻžāĻ°āĻŖ āĻ¤āĻžāĻ°āĻž āĻļā§āĻ§ā§āĻŽāĻžāĻ¤ā§āĻ° āĻŽā§āĻ¯āĻžāĻā§āĻ°āĻŋāĻā§āĻ¸-āĻā§āĻā§āĻāĻ° āĻĒāĻŖā§āĻ¯ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°ā§āĨ¤ āĻ¤āĻžāĻĻā§āĻ° āĻ¸āĻžāĻ°āĻŽāĻ°ā§āĻŽ āĻšāĻ˛ āĻāĻāĻāĻŋ āĻāĻ¤ā§āĻŽāĻŦāĻŋāĻļā§āĻŦāĻžāĻ¸ā§āĻ° āĻ
āĻā§āĻāĻ˛ā§ āĻāĻāĻāĻŋ āĻ¸āĻŽāĻ¸ā§āĻ¯āĻž āĻ¸āĻŽāĻžāĻ§āĻžāĻ¨ āĻāĻ°āĻž āĻ¯āĻž āĻāĻāĻāĻŋ āĻāĻžāĻāĻž āĻā§āĻ°āĻŋāĻ˛ā§āĻ āĻ¸āĻžāĻŦāĻ¸ā§āĻĒā§āĻ¸ āĻĻā§āĻŦāĻžāĻ°āĻž āĻ¸ā§āĻŽāĻžāĻŦāĻĻā§āĻ§āĨ¤ āĻ
āĻ¨āĻŋāĻļā§āĻāĻŋāĻ¤ āĻ¸āĻŽāĻ¸ā§āĻ¯āĻžāĻā§āĻ˛āĻŋāĻ° āĻāĻ¨ā§āĻ¯, āĻāĻ āĻĒāĻĻā§āĻ§āĻ¤āĻŋāĻāĻŋ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°āĻž āĻāĻžāĻ˛, āĻ¯ā§āĻšā§āĻ¤ā§ āĻāĻāĻŋ āĻŦāĻŋāĻļā§āĻŦāĻžāĻ¸-āĻāĻ¨āĻ¸āĻŋāĻāĻŋ āĻĒāĻĻā§āĻ§āĻ¤āĻŋāĻ° āĻ¤ā§āĻ˛āĻ¨āĻžāĻ¯āĻŧ, āĻĒā§āĻ°āĻ¤āĻŋ āĻ¸āĻžāĻŦ-āĻĒā§āĻ°āĻŦāĻ˛ā§āĻŽ āĻĒā§āĻ°āĻ¤āĻŋ āĻŽā§āĻ¯āĻžāĻā§āĻ°āĻŋāĻā§āĻ¸-āĻā§āĻā§āĻāĻ° āĻĒāĻŖā§āĻ¯ā§āĻ° āĻā§āĻ āĻ¸āĻāĻā§āĻ¯āĻžāĻ° āĻāĻžāĻ°āĻŖā§ āĻ¨āĻ¨āĻ˛āĻžāĻāĻ¨āĻžāĻ° āĻĒā§āĻ¨āĻ°āĻžāĻŦā§āĻ¤ā§āĻ¤āĻŋāĻ° āĻāĻāĻāĻŋ āĻā§āĻ āĻ¸āĻāĻā§āĻ¯āĻ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°ā§āĨ¤ āĻāĻĒāĻ°āĻ¨ā§āĻ¤ā§, āĻā§āĻ°āĻžāĻ¸ā§āĻ-āĻāĻ¨āĻ¸āĻŋāĻāĻŋ āĻĒāĻĻā§āĻ§āĻ¤āĻŋ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°āĻžāĻ° āĻā§āĻ¯āĻŧā§ āĻĻā§āĻŦāĻŋāĻāĻžāĻ¤ āĻāĻĒ-āĻ¸āĻŽāĻ¸ā§āĻ¯āĻžāĻ° āĻ¸āĻŽāĻžāĻ§āĻžāĻ¨ āĻāĻ°āĻ āĻ¸āĻ āĻŋāĻāĻāĻžāĻŦā§ āĻĒāĻžāĻāĻ¯āĻŧāĻž āĻ¯āĻžāĻ¯āĻŧāĨ¤
āĻšā§āĻ¸āĻŋāĻ¯āĻŧāĻžāĻ¨ āĻŽā§āĻ¯āĻžāĻā§āĻ°āĻŋāĻā§āĻ¸ā§āĻ° āĻ¸āĻāĻā§āĻāĻž āĻ¸āĻš āĻāĻĻāĻžāĻšāĻ°āĻŖ:
res = minimize(rosen, x0, method='trust-krylov',
jac=rosen_der, hess=rosen_hess,
options={'gtol': 1e-8, 'disp': True})
Optimization terminated successfully.
Current function value: 0.000000
Iterations: 19
Function evaluations: 20
Gradient evaluations: 20
Hessian evaluations: 18
print(res.x)
[1. 1. 1. 1. 1.]
āĻšā§āĻ¸āĻŋāĻ¯āĻŧāĻžāĻ¨ āĻāĻŦāĻ āĻāĻāĻāĻŋ āĻ¨āĻŋāĻ°ā§āĻŦāĻŋāĻāĻžāĻ°ā§ āĻā§āĻā§āĻāĻ°ā§āĻ° āĻĒāĻŖā§āĻ¯ āĻĢāĻžāĻāĻļāĻ¨ āĻ¸āĻš āĻāĻĻāĻžāĻšāĻ°āĻŖ:
res = minimize(rosen, x0, method='trust-krylov',
jac=rosen_der, hessp=rosen_hess_p,
options={'gtol': 1e-8, 'disp': True})
Optimization terminated successfully.
Current function value: 0.000000
Iterations: 19
Function evaluations: 20
Gradient evaluations: 20
Hessian evaluations: 0
print(res.x)
[1. 1. 1. 1. 1.]
āĻāĻ¤ā§āĻŽāĻŦāĻŋāĻļā§āĻŦāĻžāĻ¸ āĻ āĻā§āĻāĻ˛ā§ āĻāĻ¨ā§āĻŽāĻžāĻ¨āĻŋāĻ āĻ¸āĻŽāĻžāĻ§āĻžāĻ¨ā§āĻ° āĻāĻ¨ā§āĻ¯ āĻ ā§āĻ¯āĻžāĻ˛āĻāĻ°āĻŋāĻĻāĻŽ
āĻ¸āĻŽāĻ¸ā§āĻ¤ āĻĒāĻĻā§āĻ§āĻ¤āĻŋ (āĻ¨āĻŋāĻāĻāĻ¨-āĻ¸āĻŋāĻāĻŋ, āĻā§āĻ°āĻžāĻ¸ā§āĻ-āĻāĻ¨āĻ¸āĻŋāĻāĻŋ āĻāĻŦāĻ āĻā§āĻ°āĻžāĻ¸ā§āĻ-āĻā§āĻ°āĻŋāĻ˛āĻ) āĻŦāĻĄāĻŧ āĻāĻāĻžāĻ°ā§āĻ° āĻ¸āĻŽāĻ¸ā§āĻ¯āĻž āĻ¸āĻŽāĻžāĻ§āĻžāĻ¨ā§āĻ° āĻāĻ¨ā§āĻ¯ āĻāĻĒāĻ¯ā§āĻā§āĻ¤ (āĻšāĻžāĻāĻžāĻ° āĻšāĻžāĻāĻžāĻ° āĻā§āĻ°āĻŋāĻ¯āĻŧā§āĻŦāĻ˛ āĻ¸āĻš)āĨ¤ āĻāĻāĻŋ āĻāĻ āĻāĻžāĻ°āĻŖā§ āĻ¯ā§ āĻ āĻ¨ā§āĻ¤āĻ°ā§āĻ¨āĻŋāĻšāĻŋāĻ¤ āĻāĻ¨āĻā§āĻā§āĻ āĻā§āĻ°ā§āĻĄāĻŋāĻ¯āĻŧā§āĻ¨ā§āĻ āĻ ā§āĻ¯āĻžāĻ˛āĻāĻ°āĻŋāĻĻāĻŽ āĻŦāĻŋāĻĒāĻ°ā§āĻ¤ āĻšā§āĻ¸āĻŋāĻ¯āĻŧāĻžāĻ¨ āĻŽā§āĻ¯āĻžāĻā§āĻ°āĻŋāĻā§āĻ¸ā§āĻ° āĻāĻāĻāĻŋ āĻāĻ¨ā§āĻŽāĻžāĻ¨āĻŋāĻ āĻ¸āĻāĻāĻ˛ā§āĻĒ āĻŦā§āĻāĻžāĻ¯āĻŧāĨ¤ āĻšā§āĻ¸āĻŋāĻ¯āĻŧāĻžāĻ¨ā§āĻ° āĻ¸ā§āĻ¸ā§āĻĒāĻˇā§āĻ āĻĒā§āĻ°āĻ¸āĻžāĻ°āĻŖ āĻāĻžāĻĄāĻŧāĻžāĻ āĻ¸āĻŽāĻžāĻ§āĻžāĻ¨āĻāĻŋ āĻĒā§āĻ¨āĻ°āĻžāĻŦā§āĻ¤ā§āĻ¤āĻŋāĻŽā§āĻ˛āĻāĻāĻžāĻŦā§ āĻĒāĻžāĻāĻ¯āĻŧāĻž āĻ¯āĻžāĻ¯āĻŧāĨ¤ āĻ¯ā§āĻšā§āĻ¤ā§ āĻāĻĒāĻ¨āĻžāĻā§ āĻļā§āĻ§ā§āĻŽāĻžāĻ¤ā§āĻ° āĻāĻāĻāĻŋ āĻšā§āĻ¸āĻŋāĻ¯āĻŧāĻžāĻ¨ āĻāĻŦāĻ āĻāĻāĻāĻŋ āĻ¨āĻŋāĻ°ā§āĻŦāĻŋāĻāĻžāĻ°ā§ āĻā§āĻā§āĻāĻ°ā§āĻ° āĻĒāĻŖā§āĻ¯ā§āĻ° āĻāĻ¨ā§āĻ¯ āĻāĻāĻāĻŋ āĻĢāĻžāĻāĻļāĻ¨ āĻ¸āĻāĻā§āĻāĻžāĻ¯āĻŧāĻŋāĻ¤ āĻāĻ°āĻ¤ā§ āĻšāĻŦā§, āĻāĻ āĻ ā§āĻ¯āĻžāĻ˛āĻāĻ°āĻŋāĻĻāĻŽāĻāĻŋ āĻŦāĻŋāĻļā§āĻˇ āĻāĻ°ā§ āĻ¸ā§āĻĒāĻžāĻ°āĻ¸ (āĻŦā§āĻ¯āĻžāĻ¨ā§āĻĄ āĻ¤āĻŋāĻ°ā§āĻ¯āĻ) āĻŽā§āĻ¯āĻžāĻā§āĻ°āĻŋāĻā§āĻ¸ā§āĻ° āĻ¸āĻžāĻĨā§ āĻāĻžāĻ āĻāĻ°āĻžāĻ° āĻāĻ¨ā§āĻ¯ āĻāĻžāĻ˛āĨ¤ āĻāĻāĻŋ āĻāĻŽ āĻŽā§āĻŽāĻ°āĻŋ āĻāĻ°āĻ āĻāĻŦāĻ āĻāĻ˛ā§āĻ˛ā§āĻāĻ¯ā§āĻā§āĻ¯ āĻ¸āĻŽāĻ¯āĻŧ āĻ¸āĻžāĻļā§āĻ°āĻ¯āĻŧ āĻĒā§āĻ°āĻĻāĻžāĻ¨ āĻāĻ°ā§āĨ¤
āĻŽāĻžāĻāĻžāĻ°āĻŋ āĻāĻāĻžāĻ°ā§āĻ° āĻ¸āĻŽāĻ¸ā§āĻ¯āĻžāĻ° āĻāĻ¨ā§āĻ¯, āĻšā§āĻ¸āĻŋāĻ¯āĻŧāĻžāĻ¨ āĻ¸āĻāĻ°āĻā§āĻˇāĻŖ āĻāĻŦāĻ āĻĢā§āĻ¯āĻžāĻā§āĻāĻ°āĻŋāĻāĻ¯āĻŧā§āĻ° āĻāĻ°āĻ āĻā§āĻ°ā§āĻ¤ā§āĻŦāĻĒā§āĻ°ā§āĻŖ āĻ¨āĻ¯āĻŧāĨ¤ āĻāĻ° āĻŽāĻžāĻ¨ā§ āĻšāĻ˛ āĻ¯ā§ āĻā§āĻ°āĻžāĻ¸ā§āĻ āĻ āĻā§āĻāĻ˛ā§āĻ° āĻāĻĒ-āĻ¸āĻŽāĻ¸ā§āĻ¯āĻžāĻā§āĻ˛āĻŋ āĻĒā§āĻ°āĻžāĻ¯āĻŧ āĻ āĻŋāĻāĻāĻžāĻŦā§ āĻ¸āĻŽāĻžāĻ§āĻžāĻ¨ āĻāĻ°ā§ āĻāĻŽ āĻĒā§āĻ¨āĻ°āĻžāĻŦā§āĻ¤ā§āĻ¤āĻŋāĻ¤ā§ āĻāĻāĻāĻŋ āĻ¸āĻŽāĻžāĻ§āĻžāĻ¨ āĻĒāĻžāĻāĻ¯āĻŧāĻž āĻ¸āĻŽā§āĻāĻŦāĨ¤ āĻāĻāĻŋ āĻāĻ°āĻžāĻ° āĻāĻ¨ā§āĻ¯, āĻāĻŋāĻā§ āĻ āĻ°ā§āĻāĻŋāĻ āĻ¸āĻŽā§āĻāĻ°āĻŖ āĻĒā§āĻ°āĻ¤āĻŋāĻāĻŋ āĻĻā§āĻŦāĻŋāĻāĻžāĻ¤ āĻāĻĒāĻ¸āĻŽāĻ¸ā§āĻ¯āĻžāĻ° āĻāĻ¨ā§āĻ¯ āĻĒā§āĻ¨āĻ°āĻžāĻŦā§āĻ¤ā§āĻ¤āĻŋāĻŽā§āĻ˛āĻāĻāĻžāĻŦā§ āĻ¸āĻŽāĻžāĻ§āĻžāĻ¨ āĻāĻ°āĻž āĻšāĻ¯āĻŧāĨ¤ āĻāĻ āĻāĻžāĻ¤ā§āĻ¯āĻŧ āĻ¸āĻŽāĻžāĻ§āĻžāĻ¨ā§āĻ° āĻāĻ¨ā§āĻ¯ āĻ¸āĻžāĻ§āĻžāĻ°āĻŖāĻ¤ āĻšā§āĻ¸āĻŋāĻ¯āĻŧāĻžāĻ¨ āĻŽā§āĻ¯āĻžāĻā§āĻ°āĻŋāĻā§āĻ¸ā§āĻ° 3 āĻŦāĻž 4āĻāĻŋ āĻā§āĻ˛ā§āĻ¸ā§āĻāĻŋ āĻĒāĻāĻ¨ āĻĒā§āĻ°āĻ¯āĻŧā§āĻāĻ¨āĨ¤ āĻĢāĻ˛āĻ¸ā§āĻŦāĻ°ā§āĻĒ, āĻĒāĻĻā§āĻ§āĻ¤āĻŋāĻāĻŋ āĻāĻŽ āĻĒā§āĻ¨āĻ°āĻžāĻŦā§āĻ¤ā§āĻ¤āĻŋāĻ¤ā§ āĻāĻāĻ¤ā§āĻ°āĻŋāĻ¤ āĻšāĻ¯āĻŧ āĻāĻŦāĻ āĻ āĻ¨ā§āĻ¯āĻžāĻ¨ā§āĻ¯ āĻŦāĻžāĻ¸ā§āĻ¤āĻŦāĻžāĻ¯āĻŧāĻŋāĻ¤ āĻāĻ¤ā§āĻŽāĻŦāĻŋāĻļā§āĻŦāĻžāĻ¸ āĻ āĻā§āĻāĻ˛ āĻĒāĻĻā§āĻ§āĻ¤āĻŋāĻ° āĻ¤ā§āĻ˛āĻ¨āĻžāĻ¯āĻŧ āĻāĻŽ āĻāĻĻā§āĻĻā§āĻļā§āĻ¯āĻŽā§āĻ˛āĻ āĻĢāĻžāĻāĻļāĻ¨ āĻāĻŖāĻ¨āĻžāĻ° āĻĒā§āĻ°āĻ¯āĻŧā§āĻāĻ¨ āĻšāĻ¯āĻŧāĨ¤ āĻāĻ āĻ ā§āĻ¯āĻžāĻ˛āĻāĻ°āĻŋāĻĻāĻŽ āĻļā§āĻ§ā§āĻŽāĻžāĻ¤ā§āĻ° āĻ¸āĻŽā§āĻĒā§āĻ°ā§āĻŖ āĻšā§āĻ¸āĻŋāĻ¯āĻŧāĻžāĻ¨ āĻŽā§āĻ¯āĻžāĻā§āĻ°āĻŋāĻā§āĻ¸ āĻ¨āĻŋāĻ°ā§āĻ§āĻžāĻ°āĻŖ āĻāĻ°ā§ āĻāĻŦāĻ āĻšā§āĻ¸āĻŋāĻ¯āĻŧāĻžāĻ¨ā§āĻ° āĻĒāĻŖā§āĻ¯ āĻĢāĻžāĻāĻļāĻ¨ āĻāĻŦāĻ āĻāĻāĻāĻŋ āĻ¨āĻŋāĻ°ā§āĻŦāĻŋāĻāĻžāĻ°ā§ āĻā§āĻā§āĻāĻ° āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°āĻžāĻ° āĻā§āĻˇāĻŽāĻ¤āĻž āĻ¸āĻŽāĻ°ā§āĻĨāĻ¨ āĻāĻ°ā§ āĻ¨āĻžāĨ¤
āĻ°ā§āĻā§āĻ¨āĻŦā§āĻ°āĻ āĻĢāĻžāĻāĻļāĻ¨ āĻŽāĻŋāĻ¨āĻŋāĻŽāĻžāĻāĻā§āĻļāĻ¨ āĻ¸āĻš āĻāĻĻāĻžāĻšāĻ°āĻŖ:
res = minimize(rosen, x0, method='trust-exact',
jac=rosen_der, hess=rosen_hess,
options={'gtol': 1e-8, 'disp': True})
res.x
Optimization terminated successfully.
Current function value: 0.000000
Iterations: 13
Function evaluations: 14
Gradient evaluations: 13
Hessian evaluations: 14
array([1., 1., 1., 1., 1.])
āĻāĻŽāĻ°āĻž āĻ¸āĻŽā§āĻāĻŦāĻ¤ āĻ¸ā§āĻāĻžāĻ¨ā§ āĻĨāĻžāĻŽāĻŦ. āĻĒāĻ°ā§āĻ° āĻĒā§āĻ°āĻŦāĻ¨ā§āĻ§ā§ āĻāĻŽāĻŋ āĻļāĻ°ā§āĻ¤āĻ¸āĻžāĻĒā§āĻā§āĻˇ āĻŽāĻŋāĻ¨āĻŋāĻŽāĻžāĻāĻā§āĻļāĻ¨, āĻāĻ¨ā§āĻŽāĻžāĻ¨āĻŋāĻ āĻ¸āĻŽāĻ¸ā§āĻ¯āĻž āĻ¸āĻŽāĻžāĻ§āĻžāĻ¨ā§ āĻ¨ā§āĻ¯ā§āĻ¨āĻ¤āĻŽāĻāĻ°āĻŖā§āĻ° āĻĒā§āĻ°āĻ¯āĻŧā§āĻ, āĻāĻāĻāĻŋ āĻā§āĻ°āĻŋāĻ¯āĻŧā§āĻŦāĻ˛ā§āĻ° āĻāĻāĻāĻŋ āĻĢāĻžāĻāĻļāĻ¨ āĻŽāĻŋāĻ¨āĻŋāĻŽāĻžāĻāĻ āĻāĻ°āĻž, āĻāĻ°āĻŦāĻŋāĻā§āĻ°āĻžāĻ°āĻŋ āĻŽāĻŋāĻ¨āĻŋāĻŽāĻžāĻāĻāĻžāĻ° āĻāĻŦāĻ scipy.optimize āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°ā§ āĻ¸āĻŽā§āĻāĻ°āĻŖā§āĻ° āĻāĻāĻāĻŋ āĻ¸āĻŋāĻ¸ā§āĻā§āĻŽā§āĻ° āĻļāĻŋāĻāĻĄāĻŧ āĻā§āĻāĻā§ āĻŦā§āĻ° āĻāĻ°āĻžāĻ° āĻŦāĻŋāĻˇāĻ¯āĻŧā§ āĻ¸āĻŦāĻā§āĻ¯āĻŧā§ āĻāĻāĻ°ā§āĻˇāĻŖā§āĻ¯āĻŧ āĻŦāĻŋāĻˇāĻ¯āĻŧāĻā§āĻ˛āĻŋ āĻŦāĻ˛āĻžāĻ° āĻā§āĻˇā§āĻāĻž āĻāĻ°āĻŦāĨ¤ āĻĒā§āĻ¯āĻžāĻā§āĻ
āĻāĻ¤ā§āĻ¸:
āĻāĻ¤ā§āĻ¸: www.habr.com