I would like to write an expression using Matrix symbols, and then evaluate
it by substituting concrete Matrix values. However, the resulting Matrix
expression will not simplify.
# set up general expression
n = Symbol('n')
r1 = MatrixSymbol('r1',n,1)
r2 = MatrixSymbol('r2',n,1)
d = r2 - r1
# concrete vectors to substitute
c1 = Matrix([1.1, 2.3, 4.4])
c2 = Matrix([0.1, 2.1, 4.3])
# evaluate
d = d.subs(n,3)
r1 = r1.subs(n,3)
r2= r2.subs(n,3)
d2 = d.subs({r1:c1, r2:c2})
print d2.doit()
The result is a matrix add:
Matrix([
[-1.1],
[-2.3],
[-4.4]]) + Matrix([
[0.1],
[2.1],
[4.3]])
I suspect the 'canonicalize' rules in matadd.py need to be enhanced to fix
this?
(If the final result is put in a Matrix it gives the expected result:
"print Matrix(d2)". This is not a general solution - it only works if the
expression is known to be a Matrix.)
--
You received this message because you are subscribed to the Google Groups
"sympy" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
To post to this group, send email to [email protected].
Visit this group at http://groups.google.com/group/sympy.
For more options, visit https://groups.google.com/groups/opt_out.