i want create following expression in sympy:
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
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
Post a Comment