如何使用Python计算特定范围内多项式的最小值?

Tai*_*lla 4 python math numpy

我有一个多项式(例如,x^3 - 3x^2 + 4),我想使用 Python 计算其在某个范围内(例如,[-1,1] 之间)的最小值。我认为使用 NumPy 和/或类似的库会很容易,但是,我无法使用 Google 找到解决方案。

我可以使用 Python 计算特定范围内多项式分数的最小值(例如,(x^2 -1)/(x+3))吗?

tel*_*tel 7

使用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)