谢邀,请恕我微积分学得不扎实,我记得常数的一阶导数均为0。
如果列表中传入的为含变量x的式子,代码可能如下。
from sympy import Symbol, diff
x = Symbol('x')
def filter_(fomula):
return True if diff(fomula, x) == 0 or diff(fomula, x, 2) < 0 else False
res = filter(filter_, [x, -x**2, 3, 4*x + 5, ...])
print(*res, sep='\n')
如果你有一个确定的方程,只是想看x取什么值的时侯满足条件,则改为以下代码
from sympy import Symbol, diff
x = Symbol('x')
fomula = -x**3 + 3*x
def filter_(n):
y_1 = diff(fomula, x).evalf(subs={x:n})
y_2 = diff(fomula, x, 2).evalf(subs={x:n})
return True if y_1 == 0 or y_2 < 0 else False
res = filter(filter_, range(-10,10))
print(*res, sep='\n')