Python 中的极限和求和

Limit and summation in Python

我目前正在尝试计算以下公式的极限:

我尝试了以下代码:

nsum(lambda k: ((x)**(2k))/fac(2k), [0, inf])

其中 x = np.pi/2 它返回了以下消息:

 File "C:\Users\AppData\Local\Temp/ipykernel_14/335.py", line 3
    nsum(lambda k: ((-1)**2*(x)**(2k))/fac(2k), [0, inf])
                                   ^
SyntaxError: invalid syntax

我也厌倦了这个:

sym.limit((np.pi/2)**(2k))/fac(2k), k, sym.oo)

我遇到了同样的错误:

File "C:\Users\AppData\Local\Temp/ipykernel_14/40.py", line 1
    sym.limit(((np.pi/2)**(2k))/fac(2k), k, sym.oo)
                                    ^
SyntaxError: invalid syntax

我无法弄清楚我的问题出在哪里,任何想法将不胜感激。

对于Python,乘法需要显式写出。在你的情况下,你需要写 2*k.

编辑:很明显,这是您第一次使用 Python 以及数字库和符号库之间的区别。在这里,我将讨论 SymPy 以及我处理您的问题的方式:

from sympy import var, Sum, pi, factorial, limit
# create symbols n and k
var("k, n")
# create a symbolic expression.
# NOTE: I have replace the upper limit n with infinity
expr1 = Sum((pi / 2)**(2 * k) / factorial(2 * k), (k, 0, oo))
expr1.doit()
# output: cosh(pi/2)

# If you wanted to compute the limit of the original expression:
expr2 = Sum((pi / 2)**(2 * k) / factorial(2 * k), (k, 0, n))
limit(expr2, n, oo)
# It throws an error!