Py学习  »  Python

Python中的极限和求和

Amir • 3 年前 • 1499 次点击  

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

enter image description here

我尝试了以下代码:

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社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/131794
 
1499 次点击  
文章 [ 1 ]  |  最新文章 3 年前
Davide_sd
Reply   •   1 楼
Davide_sd    3 年前

使用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!