【发布时间】:2013-12-13 18:41:00
【问题描述】:
我想绘制一个涉及二项式系数的函数。我的代码是
#!/usr/bin/python
from __future__ import division
from scipy.special import binom
import matplotlib.pyplot as plt
import math
max = 500
ycoords = [sum([binom(n,w)*sum([binom(w,k)*(binom(w,k)/2**w)**(4*n/math.log(n)) for k in xrange(w+1)]) for w in xrange(1,n+1)]) for n in xrange(2,max)]
xcoords = range(2,max)
plt.plot(xcoords, ycoords)
plt.show()
不幸的是,这永远不会终止。如果您将最大值减少到 40,则表示它工作正常。有没有办法绘制这个函数?
我还担心 scipy.special.binom 可能无法给出准确的答案,因为它似乎在浮点中工作。
【问题讨论】:
-
您的代码似乎运行良好,我按原样运行它,虽然它确实花费了大量时间,但当您使用 500 个术语时,这是可以预料的。另外,剧情还不错。我不清楚问题是什么。
-
@TroyRockwood 我认为 binom(n,w) 只能精确到 53 位,所以你得到的图片不会是正确的吧?
-
这是一个不同于“它永远不会终止”或“你能画出来”的问题,显然结果将受到所使用的可变精度的准确性的限制。也许一点点说明问题的应用会有所帮助。