programacion numero mostrar funciĆ³n funcion como calcular python sum sympy factorial

numero - funcion factorial python 3



Sumando factoriales en Python (2)

La única solución que puedo pensar en evitar bucles es una versión funcional: S:

from math import factorial reduce(int.__add__,map(factorial,xrange(1,5)))

Me gustaría calcular sumas con factoriales usando álgebra simbólica en python. La versión más simple del problema que puedo generar es la siguiente:

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

Y obtengo el siguiente error:

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

Fundamentalmente, lo que me gustaría calcular es

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

¿Cualquier sugerencia?


El uso de la función factorial propia de Sympy (en lugar de la función factorial del módulo math ) tal vez podría devolver lo que desee.

Después de su configuración inicial, pero omitiendo el from math import factorial , puede escribir:

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

Esto reduce la suma de las series factoriales a una simple ecuación cuadrática.

Noto que está calculando la suma de los primeros términos de la expansión de la serie de potencia de exp(x) :

1 + x + x**2/2! + x**3/3! + ...