使用python查找函数的最大值和最小值

时间:2014-09-28 19:26:51

标签: python max min

编写函数maxmin(f, a, b, n=1000)以查找最大值 和区间中数学函数f(x)的最小值 在ab之间。以下测试程序

from math import cos, pi
print maxmin(cos, -pi/2, 2*pi, 100001)

应写出

(1.0, -1.0).

maxmin函数可以计算一组n均匀间隔的坐标 存储在列表a中的bx之间,然后计算f x中的点,并将值存储在另一个列表y中。 Python函数 max(y)min(y)返回的最大值和最小值 分别列出y

我尝试使用

from math import cos, pi
import numpy

def maxmin(f, a, b, n=1000):
    x = (f(i) for i in numpy.linspace(a, b, n))
    #print x
    maximum = max(x==2)
    minimum = min(x==0)
    return maximum, minimum

print maxmin(cos, -pi/2, 2*pi, 100001)

但它运行不正常。当我的意思是它不能正常工作,我没有给我最大和最小,我应该得到哪个(1.0,-1.0)。  这是我得到的错误

minimum = min(x)
ValueError: min() arg is an empty sequence
>>>

我很困惑它想要什么序列

1 个答案:

答案 0 :(得分:0)

由于您导入内容的方式,您发布的代码会为您提供NameError: global name 'numpy' is not defined。而不是做

from numpy import *

只是做

import numpy

此外,numpy中的函数称为linspace,而不是linespace。如果你改变这两件事它会起作用,但还有其他问题。

您似乎无法理解Python的导入是如何工作的。这就是问题的根源。每当您键入from numpy import *时,Python 都会找到 numpy并将numpy中定义的所有内容放入当前文件中。因此,您无法将numpy中的内容称为numpy.linspacenumpy.sin或其他任何内容。您只需将其称为linspacesin