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!
我目前正在尝试计算以下公式的极限:
我尝试了以下代码:
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!