Representing Noncommutative Expressions with Commutative Ones.

- Aliases: none
- Description: NCXRepresent[aListOfExpressions,aListOfVariables, aListOfDims,
aListOfFunctions,aListOfExraRules] replaces each occurrence of the variables in the list
aListOfVariables with a matrix in commuting symbols of size specified in aListOfDims in the set
of relations in the first arguement. The argument aListOfDims should be a list of pairs
{n1,n2} specifying the number of rows and columns of the corresponding variable. The
fourth arguement is best described by an example. If one has the variable x and also the
indeterminate F[x], then often one wants the F[x] to be replaced by a symbolic matrix as
well as x. If F appears in the fourth list, every occurrence of indeterminates F[x],F[y]
etc. will be replaced by matrices of the same size as x,y etc. with entries that look
like Fx11,…,Fy11,…. This clearly is not appropriate for functions such as Aj and Tp
denoting the adjoint and transpose of a symbol. But for other functions such as Inv
this is quite necessary. The output of NCXRepresent is a matrix for each relation in
aListOfExpressions.

The last (fifth) arguement is a sort of catch-all for unusual rules specific to the problem. The following are some favorites.- z → IdentityMatrix[n]. If some variable z is to be replaced by an identity matrix of some size then one puts this rule in aListOfExtraRules An important point: if constants appear in the list of relations, one MUST replace them with auxiliary variables and then use this last arguement to replace them with the appropriate multiple of the identity matrix.
- x → PrimeMat[{n
_{1},n_{2}},k]. This is an auxillary function built in to NCXRepresent that will replace a variables by a matrix consisting of distinct prime entries. To use this, one just puts the rule above in the list aListOfExtraRules. This will replace x with an n_{1}× n_{2}matrix with prime entries beginning at the kth prime. - Any other replacement rules may be listed in aListOfExtraRules, such as tp → Transpose or other hand-made rules replacing a variable by some specific matrix.

- Arguments: aListOfVariables, aListOfDims, aListOfExpressions, aListOfFunctions, aListOfExtraRules
- Comments / Limitations: If aListOfExpressions includes constant terms, one must first replace them with a variable and then use the optional list of rules to replace them with identity matrices of appropriate size. Mathematica does bad things to expressions that contain both a matrix and a constant, namely it adds the constant to each entry of the matrix. Any of the lists other than aListOfExpressions may be left as the empty set. A warning: if a variable appears only as the arguement in a function in aListOfFunctions one must still put the variable in the second arguement, and its size in the third. The reason is, its size must be specified somewhere for the function to work. aListOfVariables should include only those variables that are to be replaced by purely symbolic matrices, and should not appear in the left-hand side of a rule in aListOfOptionalRules.

Examples

In[99]:= NCXRepresent[ {A**B}, { A, B}, { {2,1}, {1,1} },{},{} ] Out[99]:= {{{A11 B11},{A21 B11}}} In[100]:= NCXRepresent[ {A**tp[B]}, { A, B}, { {2,2}, {1,2} }, {tp},{} ] = Out[100]:= {{{A11 B11+A12 B12},{A21 B11+A22 B12}}} |