根据官方文档的说明,scipy.optimze的功能涉及5方面:
无约束和带约束的多元优化算法(minimize)
全局最优化(basinhopping,differential_evolution...args:优化函数的其他输入参数
只需要注意,如果自变量x没有区间设定,直接用默认的就可以了,如果x有区间约束,必须用'bounded'方法。
举个例子:
?...scipy.optimize.minimize(fun, x0, args=(), method=None,
jac=None, hess=None, hessp=None, bounds=None,...constraints=(),
tol=None, callback=None, options=None)
参数很多,比较重要的包括fun,x0,method,bounds,constraints,其他的可有可无...constraint的设定相对麻烦一些,以SLSQP为例,通过字典的格式输入,分为等式约束和不等约束:
type参数设定为'eq'表示等式约束,设定为'ineq'表示不等式约束
fun参数设定约束表达式