编写函数maxmin(f, a, b, n=1000)
以查找最大值
和区间中数学函数f(x)
的最小值
在a
和b
之间。以下测试程序
from math import cos, pi
print maxmin(cos, -pi/2, 2*pi, 100001)
应写出
(1.0, -1.0).
maxmin
函数可以计算一组n
均匀间隔的坐标
存储在列表a
中的b
和x
之间,然后计算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
>>>
我很困惑它想要什么序列
答案 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.linspace
,numpy.sin
或其他任何内容。您只需将其称为linspace
和sin
。