如何在python中实现从1到无穷大的求和

2024-10-01 13:43:54 发布

您现在位置:Python中文网/ 问答频道 /正文

我想计算一个无限的和

如下:从k=1到无穷大(0.9^k)*r+k+1//或任何其他值

我的第一个想法是这样的:

def infiniteCalc(r):
    result = r
    for k in range(10000000):
        result += 0.9**k + r + k +1 +1 //k is starting at 0, so another +1

    return result

另一个想法是检查结果是否在迭代中发生变化,但我不确定这是否有用。在

另一个想法是使用limit之类的东西,但我不知道python是否为此提供了一个函数(如果,这真的是我的解决方案吗?)在


Tags: 函数inforreturnsoisdefanother
2条回答

听起来你的目标是对表达式进行符号化的执行,而不是实际想要用数字来计算。为此,您需要一个类似SymPy的库。下面是关于求和的参考:http://docs.sympy.org/dev/modules/concrete.html#sympy.concrete.summations.Sum

下面是一个在表达式中使用SymPy的示例:

>>> from sympy import *
>>> var('r k')
(r, k)
>>> Sum((0.9**k) * r + k + 1,(k,1,oo))
Sum(0.9**k*r + k + 1, (k, 1, oo))
>>> _.doit()
Sum(0.9**k*r + k + 1, (k, 1, oo))
>>> nsimplify(_, rational=True)
Sum((9/10)**k*r + k + 1, (k, 1, oo))
>>> _.doit()
9*r + oo

相关问题 更多 >