我甚至不确定这是否是我试图实现的最佳措辞,但我正在尝试用Python计算幂级数,正如我所想象的,因为我对Python不熟悉,而且幂级数计算在使用浮点数时很棘手,所以我的计算会崩溃
我的幂级数是简单素数幂计数函数J(x)的近似值。 在Mathematica中,我可以计算这个幂级数(我已经计算到了质数151,这非常耗时),但即使在Mathematica中,如果我在公式中使用浮点(而不是符号,然后转换为十进制),结果也是错误的。我的计划是创建一个可执行文件,我可以让它在Unix或Windows上的作业远程桌面上运行
这是我用Python(使用scipy)创建的代码:
x = 12
M = 9 * x
soma = 0
for i in range(1, M+1):
termo1 = (-1)**i * x * (2*pi*x)**(2*i) / (2*i+1)
for j in range(1, i+1):
termo2 = (-1)**j * log(zeta(2*j))/((2*pi)**(2*j) * factorial(2*i+1-2*j))
soma = soma + termo1 * termo2
soma = -4 * soma
当我们对某件事还不熟悉的时候,即使是简单的事情也很难解决(我是个新手,所以说使用十进制对我来说是个希腊语)。这是我得到的错误:
File "D:/iTunes/Python/PyCharm/Zeta.py", line 31, in <module>
termo1 = (-1)**i * x * (2*pi*x)**(2*i) / (2*i+1)
OverflowError: (34, 'Result too large')
我该如何解决这个问题?或者更好的是,是否有一个软件包假设我需要所有函数(zeta、log、factorial等)都具有很高的精度,从而省去了我自己解决问题的麻烦
这段代码在GoogleColab上工作。请根据需要更新精度。请注意,乘法和除法会使最后几个数字不准确
相关问题 更多 >
编程相关推荐