我正在阅读“使用Python进行科学编程入门”一书,我坚持练习2.26。据说写一个函数maxmin(f,a,b,n = 1000),它返回a和b之间的间隔中数学函数f(x)的最大值和最小值(在n个点评估)。
maxmin函数可以计算a之间的一组n坐标 和b存储在列表x中,然后在x和存储点计算f 另一个列表中的值y。 Python函数max(y)和min(y) 分别返回列表y中的最大值和最小值。
作为测试,据说
from math import cos, pi
print maxmin(cos, -pi/2, 2*pi)
应写出(1.0,-1.0)
这是我试过的,但它没有返回任何东西!
from math import cos, pi
def maxmin(f, a, b, n=1000):
x = [f(i) for i in range(a, b, n)]
#print x
maximum = max(x)
minimum = min(x)
return maximum, minimum
print maxmin(cos, -pi/2, 2*pi)
答案 0 :(得分:2)
您的代码错误地使用了range()
。该函数不支持浮点参数,最后一个参数不是您认为的。
如果我没记错的话,你所关注的书是以NumPy为基础的。如果是这种情况,您只需将range()
替换为numpy.linspace()
。