python - List/Array of matrices in sympy -


i want create following expression in sympy:

\sum_{k=0}^p \mathbf{m}\mathbf{a}^{(k)}\mathbf{u}

m, u , a^(k) square matrices of size m.

so far, managed given p:

import sympy  m = sympy.symbols('m', integer=true) p = 3  = [sympy.matrixsymbol('a^({})'.format(k), m, m) k in range(p)] m = sympy.matrixsymbol('m', m, m) u = sympy.matrixsymbol('u', m, m)  expr = m*a[0]*u k in range(1, p):     expr += m*a[k]*u expr 

enter image description here

however, not want set p fixed number. instead want p symbol, m. how can achieved in sympy?

there may better way. now, managed achieve want defining a function rather list:

m, p, k = symbols('m, p, k')  m = sympy.matrixsymbol('m', m, m) u = sympy.matrixsymbol('u', m, m)  class a(sympy.function):     @classmethod     def eval(cls, k):         return sympy.matrixsymbol('a^({})'.format(k), m, m)  sympy.sum(m * a(k) * u, (k, 1, p)) 

Comments