Python 中的阶乘求和

2024-04-27

我想使用 python 中的符号代数来计算阶乘和。我可以生成的问题的最简单版本如下:

from sympy.abc import j
from math import factorial
from sympy import summation
summation(factorial(j), (j, 1, 4))

我收到以下错误:

Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "sympy/core/expr.py", line 194, in __int__
    r = self.round(2)
  File "sympy/core/expr.py", line 3042, in round
    raise TypeError('%s is not a number' % type(x))
TypeError: <class 'sympy.core.symbol.Symbol'> is not a number

从根本上来说,我想要计算的是

summation(x**(j-1)/factorial(j-1), (j, 1, 3))

有什么建议吗?


使用 Sympy 自己的factorial函数(而不是math模块的阶乘函数)也许可以返回您想要的内容。

按照您的初始设置但省略from math import factorial,然后你可以写:

>>> from sympy import factorial, symbols
>>> x = symbols('x')
>>> summation(x**(j-1)/factorial(j-1), (j, 1, 3))
x**2/2 + x + 1

这将阶乘级数的总和简化为简单的二次方程。

我注意到您正在计算幂级数展开的前几项的总和exp(x):

1 + x + x**2/2! + x**3/3! + ...
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Python 中的阶乘求和 的相关文章

随机推荐