获取numpy.poly1d曲线的最小点数

Con*_*lor 7 python numpy scipy

我有一个numpy.poly1d多项式如下:

c = np.poly1d([2,-4,-28,62,122,-256,-196,140,392,240,72])
Run Code Online (Sandbox Code Playgroud)

在绘制范围时,曲线如下所示-2.5 <= x <= 2.5:

在此输入图像描述

如何在给定范围内找到该曲线的最小点,而不使用用于绘制曲线的离散值(我的意思是仅使用连续poly1d对象)?

joo*_*jaa 9

确定与@matiasg目标不同的功能是制作更多可复制的代码并使用尽可能多的矢量化代码.

import numpy as np
from matplotlib.pyplot import *

c = np.poly1d([2,-4,-28,62,122,-256,-196,140,392,240,72])

crit = c.deriv().r
r_crit = crit[crit.imag==0].real
test = c.deriv(2)(r_crit) 


# compute local minima 
# excluding range boundaries
x_min = r_crit[test>0]
y_min = c(x_min)
plot( x_min, y_min, 'o' )

xc = np.arange(-2.5, 2.6, 0.02)
yc = c(xc)
plot( xc, yc)

xlim([-2.5,2.5])
show()
Run Code Online (Sandbox Code Playgroud)

结果

图1:结果.请注意,在您的界限之外还有另一个本地最小值;)