哪个编程语言或库可以处理无穷级数?
哪种编程语言或库可以处理无限级数(比如几何级数或调和级数)呢?它可能需要有一些常见级数的数据库,能够自动给出收敛时的正确值,如果发散的话可能会生成一个异常。
比如,在Python中,它可能看起来像这样:
sum = 0
sign = -1.0
for i in range(1,Infinity,2):
sign = -sign
sum += sign / i
那么,结果应该是math.pi/4,而不需要在循环中进行任何计算(因为这是一个众所周知的和)。
13 个回答
15
你可以去看看维基百科上关于计算机代数系统的分类,这里有很多相关的信息。
18
大多数支持惰性计算的函数式编程语言可以模拟无限序列的处理。你也知道,在有限的计算机上是不可能真正处理无限序列的。随便想想,我觉得 Mathematica 可以做到你可能需要的大部分功能,我猜 Maple 也可以,可能还有 Sage 以及其他计算代数系统。如果你找不到合适的 Haskell 实现,我会感到很惊讶。
补充说明一下:我并不是说要生成无限循环。惰性计算让你可以编写程序(或函数)来模拟无限序列,而这些程序本身在时间和空间上都是有限的。使用这样的语言,你可以相当准确地确定模拟的无限序列的许多特性,比如收敛性,并且有一定的把握。可以试试 Mathematica,如果你没有这个软件,可以去 Wolfram Alpha 看看这个系统能为你做些什么。
4
你需要一个可以进行符号计算的工具,比如Mathematica。你也可以考虑使用wolframalpha来查询这个公式:sum((-1)^i*1/i, i, 1 , inf)