python四限制选项的问题

python四限制选项的问题,python,scipy,Python,Scipy,我使用的是scipy quad,我显然误解了与限制选项相关的文档。我想限制对函数求值的子间隔数,以减少运行时间。我举了一个简短的例子来说明我的困惑 def func(x): print x return x quad(func,0,10,limit=4) 我希望打印4个x值,但我得到的是21个。任何帮助都将不胜感激 干杯, William打印的图像似乎来自您的func函数,而不是四元组四元组只返回 如果要打印结果,请尝试这样做: def func(x): return

我使用的是scipy quad,我显然误解了与限制选项相关的文档。我想限制对函数求值的子间隔数,以减少运行时间。我举了一个简短的例子来说明我的困惑

def func(x):
    print x
    return x

quad(func,0,10,limit=4)
我希望打印4个x值,但我得到的是21个。任何帮助都将不胜感激

干杯,
William

打印的图像似乎来自您的
func
函数,而不是
四元组<代码>四元组
只返回

如果要打印结果,请尝试这样做:

def func(x):
    return x

print quad(func, 0, 10, limit=4)

您犯了一个错误,quad的结果是:

In [30]: a = quad(func,0,10,limit=4)
5.0
0.130467357414
9.86953264259
0.674683166555
9.32531683344
1.6029521585
8.3970478415
2.83302302935
7.16697697065
4.25562830509
5.74437169491
0.021714184871
9.97828581513
0.349212543221
9.65078745678
1.09591136707
8.90408863293
2.18621432666
7.81378567334
3.52803568649
6.47196431351

In [31]: a
Out[31]: (50.0, 5.551115123125783e-13)

只需删除函数中的
print
语句,然后打印
quad

关键字
limit
控制自适应子间隔的数量,但不直接控制求值的数量。即,QUADPACK可能使用高阶求积,该求积在每个间隔内对函数求值几次。评估的数量也不必被4整除,因为例程可能会做一些额外的评估

有关详细信息,请参阅