I try to create a sympy expression with a Sum with an indexed variable as previous explain here However, I can not do lambdify of this expression and give an array to get the sum calculated. Is this impossible?

2 Answers

Perhaps like this?

s = Sum(Indexed('x',i),(i,1,3)) f = lambda x: Subs(s.doit(), [s.function.subs(s.variables[0], j) for j in range(s.limits[0][1], s.limits[0][2] + 1)], x).doit() >>> f((30,10,2)) 42 
4

You can use lambdify. Just make sure the limits of the sum match the iterables of a numpy array.

from sympy import Sum, symbols, Indexed, lambdify import numpy as np x, i = symbols("x i") s = Sum(Indexed('x',i),(i,0,3)) f = lambdify(x, s) b = np.array([1, 2, 3, 4]) f(b) 

Your Answer

Sign up or log in

Sign up using Google Sign up using Facebook Sign up using Email and Password

Post as a guest

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge that you have read and understand our privacy policy and code of conduct.