fee*_*dMe 6 python optimization minimization scipy
我在用scipy.optimize.minimize
从函数中找到最佳值。这是最简单的示例,使用内置 Rosenbrock 函数:
>>> from scipy.optimize import minimize, rosen\n>>> x0 = [1.3, 0.7, 0.8, 1.9, 1.2]\n>>> # Minimize returns a scipy.optimize.OptimizeResult object...\n>>> res = minimize(rosen, x0, method='Nelder-Mead') \n>>> print res\n status: 0\n nfev: 243\n success: True\n fun: 6.6174817088845322e-05\n x: array([ 0.99910115, 0.99820923, 0.99646346, 0.99297555, 0.98600385])\n message: 'Optimization terminated successfully.'\n nit: 141\n
Run Code Online (Sandbox Code Playgroud)\n\nx
只是最终的最佳输入向量。\xe2\x80\x8b我可以从返回的结果中获取所有迭代的列表(即具有相应输入向量的目标函数)scipy.optimize.OptimizeResult
?
小智 0
是的,您可以添加可选参数'return_all'
。
例子:
from scipy.optimize import minimize
def f(params):
x1, x2 = params
f = 4 * ((x1**2+(10-x2)**2)**0.5 - 10)**2 \
+ (1/2)*((x1**2+(10+x2)**2)**0.5-10)**2 \
-5*(x1+x2)
return f
x0 = [-4, 4]
res = minimize(f, x0, method='CG', options={'return_all':True})
# This example returns all iteration.
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
5473 次 |
最近记录: |