ely*_*ely 20
您可以使用scipy.optimize.fmin功能的否定.
def f(x): return -2 * x**2 + 4 * x
max_x = scipy.optimize.fmin(lambda x: -f(x), 0)
# array([ 1.])
Run Code Online (Sandbox Code Playgroud)
如果您的功能可解析,请尝试使用SymPy.我将使用上面的EMS示例.
In [1]: from sympy import *
In [2]: x = Symbol('x', real=True)
In [3]: f = -2 * x**2 + 4*x
In [4]: fprime = f.diff(x)
In [5]: fprime
Out[5]: -4*x + 4
In [6]: solve(fprime, x) # solve fprime = 0 with respect to x
Out[6]: [1]
Run Code Online (Sandbox Code Playgroud)
当然,你仍然需要检查1是最大化器而不是f的最小化器
In [7]: f.diff(x).diff(x) < 0
Out[7]: True
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
33526 次 |
| 最近记录: |