优化包提供了各种常用的优化算法。该模块包含以下方面:
全局优化例程(brute-force蛮力, anneal(), basinhopping())
使用各种算法(BFGS, Nelders-Mead单形, 牛顿共轭梯度, COBLYA)对多元标量函数(minimize())进行无约束和无约束的最小化。
最小二乘最小化算法(leastsq()和curve fit())
标量单变量函数最小化器(minimizer_scalar()和根查找器newton())
Nelder-Mead单纯形算法
Nelder-Mead Simplex算法提供了minimum()函数, 该函数用于最小化一个或多个变量的标量函数。
import numpy as np
import scipy
from scipy.optimize import minimize
#define function f(x)
def f(x):
return .2*(1 - x[0])**2
scipy.optimize.minimize(f, [2, -1], method="Nelder-Mead")
输出
final_simplex: (array([[ 1. , -1.27109375], [ 1. , -1.27118835], [ 1. , -1.27113762]]), array([0., 0., 0.]))
fun: 0.0
message: 'Optimization terminated successfully.'
nfev: 147
nit: 69
status: 0
success: True
x: array([ 1. , -1.27109375])