我正在尝试使用列表推导来编写函数来计算函数的最大值:
f(x)=x^3-x^2+3x+2 on the interval [4,12].
定义功能:
mymax(f, a, b, precision)
其中precision是x值的精度,其中出现最大值。
如何做到这一点?
答案 0 :(得分:0)
假设a,b是你的区间的末端,而精度是增量,我认为这就是你要找的东西:
import numpy as np
def f(x):
return x**3-x**2+3*x+2
def mymax(f, a, b, p):
max_x=float('-inf')
for x in np.arange(a,b,p):
max_x=max(max_x,f(x))
return x
或者,在一个漂亮的单行中:
def mymax(f, a, b, p):
return max(y for y in [f(x) for x in np.arange (a,b,p)])