我想绘制一个函数在python中有无限的总和。现在,由于计算没有任何限制,对于我的上限,我可以选择一个非常大的数字,这很好。绘制蟒蛇的总和
于是,我就绘制它:
from scitools.std import *
from math import *
import numpy as np
def f1(t):
return 0.5*(1+sum((4**(2*n)*cos(2*n*t))/(e**16*factorial(n)) for n in xrange(0,10**100)))
t = linspace(0, 35, 10000)
y1 = f1(t)
plot(t, y1)
xlabel(r'$\tau$')
ylabel(r'P($\tau$)')
legend(r'P($\tau$)')
grid(True)
我设法降低x范围(或范围),并增加linspace(0,35在1000个多点),但我越来越之一:
OverflowError: long int too large to convert to int
或
OverflowError: range() result has too many items
那么,似乎这里是什么问题?我怎样才能让这笔钱变大?总和的语法是否正确?
你正在努力解决10 ** 100阶乘问题,你很惊讶你会得到一个OverflowError? – katrielalex 2011-05-22 12:27:04