Ask Your Question

Substitution using Dictionary with Matrix as Value

asked 2012-06-14 17:58:48 +0200

heatkernel gravatar image

updated 2012-06-14 17:59:26 +0200

As a newcomer to SAGE, trying to use it to do symbolic linear algebra, I am wondering why substitution of a variable using a dictionary doesn't work in this case:

sage: aMatrix = matrix(SR,1,1)
sage: var('aVariable')
sage: aDict = {}
sage: aDict[aVariable] = aMatrix
sage: aDict[aVariable]


sage: aVariable.subs(aDict)
/Applications/sage/local/lib/python2.7/site-packages/sage/symbolic/ in sage.symbolic.expression.Expression.substitute (sage/symbolic/expression.cpp:16025)()

/Applications/sage/local/lib/python2.7/site-packages/sage/symbolic/ in sage.symbolic.expression.Expression.coerce_in (sage/symbolic/expression.cpp:11265)()

/Applications/sage/local/lib/python2.7/site-packages/sage/structure/ in sage.structure.parent_old.Parent._coerce_ (sage/structure/parent_old.c:3369)()

/Applications/sage/local/lib/python2.7/site-packages/sage/structure/ in sage.structure.parent.Parent.coerce (sage/structure/parent.c:8912)()

TypeError: no canonical coercion from Full MatrixSpace of 1 by 1 dense matrices over Symbolic Ring to Symbolic Ring

Functionality to substitute matrices for variables seems to be indispensable to doing symbolic linear algebra, so I am sure there is a proper way to do this.

edit retag flag offensive close merge delete

1 Answer

Sort by ยป oldest newest most voted

answered 2012-06-16 07:33:35 +0200

Symbolic expressions do not support working with Sage matrices. There are different approaches to do "linear algebra" in this context though.

  • Indexed expressions

    This is GiNaC's solution. Our symbolics library pynac is based on GiNaC, so we just inherit this functionality. Although it hasn't been wrapped for easy use from Python.

    There is an experimental patch at #11576, but the GiNaC tutorial is the best reference.

  • SymbolicMatrixAlgebra as Nicolas Thiery implemented in this thread.

Any help to get these things in a polished state so they can be included in Sage is welcome.

edit flag offensive delete link more

Your Answer

Please start posting anonymously - your entry will be published after you log in or create a new account.

Add Answer

Question Tools



Asked: 2012-06-14 17:58:48 +0200

Seen: 748 times

Last updated: Jun 16 '12