擅长:python、mysql、java
<p>您可以看看优化包:<a href="http://docs.scipy.org/doc/scipy/reference/tutorial/optimize.html" rel="nofollow">http://docs.scipy.org/doc/scipy/reference/tutorial/optimize.html</a></p>
<p>作为一个简单的例子,假设您正在寻找(x-3)**2的最小值。定义一个函数,该函数获取输入并返回函数值。您传递这个函数来最小化,以及一个初始猜测x0。在</p>
<pre><code>import numpy as np
from scipy.optimize import minimize
def fn(x):
return (3-x)**2
x0 = 0
res = minimize(fn, x0, method='nelder-mead', options={ 'disp': True})
</code></pre>
<p>这将按预期返回3.0。可以将fn定义为有一个输入向量x,然后将x0指定为一个向量,即初始点的维数与fn期望的相同。在</p>
<p>在本例中,“nelder-mead”方法是一个简单的算法,可能运行时间较长。如果你知道广度函数或你的函数要最小化,你可以使用更高级的算法,例如BFGS,并传递梯度函数,如doc中所述。在</p>