我有一个多项式(例如,x^3 - 3x^2 + 4),我想使用 Python 计算其在某个范围内(例如,[-1,1] 之间)的最小值。我认为使用 NumPy 和/或类似的库会很容易,但是,我无法使用 Google 找到解决方案。
我可以使用 Python 计算特定范围内多项式分数的最小值(例如,(x^2 -1)/(x+3))吗?
使用minimize
来自scipy.optimize
:
from scipy.optimize import minimize
def fun(x):
return x**3 - 3*x**2 + 4
fit = minimize(fun, x0=10)
print(fit.x)
Run Code Online (Sandbox Code Playgroud)
输出:
[2.00000006]
Run Code Online (Sandbox Code Playgroud)
如果您想设置特定的边界,则需要使用methods
可以支持它的边界之一(methods
有关详细信息,请参阅链接的文档页面)。
from scipy.optimize import minimize
def fun(x):
return x**3 - 3*x**2 + 4
fit = minimize(fun, x0=1, method='L-BFGS-B', bounds=((1,3),))
print(fit.x)
Run Code Online (Sandbox Code Playgroud)
输出:
[1.99999989]
Run Code Online (Sandbox Code Playgroud)