我想繪製一個函數在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