Hi Matt,
many thanks for the prompt reply and the pointer to "matrix-algebra", which I'll definitely check out. Still, it'd certainly be great to have this (re-)added to sympy at some point and probably matrix expressions are a good place to start for using the new assumption system (as far as I can tell from my very limited knowledge on sympy internals). You've mentioned that simplify isn't using the new assumptions system in the main branch... does this mean there is a branch that has a prototype of this enabled? Thanks, Chris On Monday, March 17, 2014 5:15:25 PM UTC-7, Matthew wrote: > > Also, it's far less practical, but you may find > http://github.com/mrocklin/matrix-algebra to be of interest. > > > On Mon, Mar 17, 2014 at 5:12 PM, Matthew Rocklin > <[email protected]<javascript:> > > wrote: > >> Hi Chris, >> >> Thanks for the kind words. >> >> At the moment Matrix Expressions in the main branch do not use >> assumptions while simplifying. IIRC they actually used to but I removed it >> so that I could approach this more cleanly. One lofty reason for this was >> so that this could be used as a model for the rest of sympy when it >> eventually jumps over to the new assumptions system. >> >> If other devs see this e-mail - what are your thoughts on `refine`, the >> simplify API suggested (but rarely used) by new assumptions? Should we >> start using this? Should we roll it into simplify? In general at what >> point should we appeal to new assumptions? At expression creation time? >> At simplify time? At another simplify-like api time (e.g. refine time)? I >> decided not to call upon new assumptions while creating expressions (e.g. >> X.T creates a Transpose(X) even if X is symmetric). I think that my >> reasoning at the time was performance. >> >> Chris, in general what you're asking for is easy for us to add. I would >> like to make sure that we add it correctly. >> >> Also, it's been some time since this was all in my head. I may have said >> some untrue things. >> >> Best, >> -Matthew >> >> >> >> >> On Mon, Mar 17, 2014 at 4:57 PM, Chris <[email protected] >> <javascript:>>wrote: >> >>> Hi all, >>> >>> >>> I stumbled upon the discussion on matrix assumptions and the bit of >>> history behind this sympy module: >>> >>> http://scicomp.stackexchange.com/questions/74/symbolic-software-packages-for-matrix-expressions >>> >>> First off all, thank you Matt, this is incredibly cool stuff! >>> >>> Now, I'm trying to do some matrix algebra while encoding knowledge about >>> the matrices involved. For instance, say my matrix U is unitary, i.e. U * >>> U.T = I. I've looked around in the documentation and source code, but >>> couldn't figure out, if the new assumption system can be used to simplify >>> matrix expressions. >>> >>> I was trying to exploit this using sympy as follows: >>> >>> from sympy import Q, symbols, MatrixSymbol, ask, simplify >>> from sympy.assumptions.assume import global_assumptions >>> >>> n = symbols('n', integer=True) >>> U = MatrixSymbol('U', n, n) >>> >>> global_assumptions.add(Q.unitary(U)) >>> >>> UU = U * U.T >>> >>> print UU >>> >>> simpleUU = simplify(UU) >>> print simpleUU >>> >>> >>> I was hoping that the second print would output the Identity, but >>> somehow this didn't work. Any suggestions, pointers, hints? >>> >>> >>> Cheers, >>> Chris >>> >>> -- >>> 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] <javascript:>. >>> To post to this group, send email to [email protected]<javascript:> >>> . >>> Visit this group at http://groups.google.com/group/sympy. >>> To view this discussion on the web visit >>> https://groups.google.com/d/msgid/sympy/31aaea36-675d-40b0-8d77-aec8828f6c31%40googlegroups.com<https://groups.google.com/d/msgid/sympy/31aaea36-675d-40b0-8d77-aec8828f6c31%40googlegroups.com?utm_medium=email&utm_source=footer> >>> . >>> For more options, visit https://groups.google.com/d/optout. >>> >> >> > -- 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. To view this discussion on the web visit https://groups.google.com/d/msgid/sympy/dc8bb9d8-c2aa-4381-82d9-e2e3c3dfe93e%40googlegroups.com. For more options, visit https://groups.google.com/d/optout.
