Symbolic Linear Algebra Package
- To: mathgroup at yoda.physics.unc.edu
- Subject: Symbolic Linear Algebra Package
- From: Mark E. Fisher <m1mef00 at frb.gov>
- Date: Fri, 14 Jan 94 09:17:28 -0500
Brian Eberman writes: > I am looking for a symbolic linear algebra backage, (also possibly > multilinear algebra?) for Mathematica. I would like to be able to > specify the properties of the elements of equations and get the > appropriate simplifications. > For example if R is unitary > that R . Transpose(R) = Id. > I do not subscribe to the mathgroup so please respond directly if you > have any information. As no return address was evident I am responding to the group. I wrote a package called Dot Algebra. This package implements a set of rules for the symbols "dot", "tr", "inv", and "iden", corresponding to Dot, Transpose, Inverse, and IdentityMatrix. In addition, the element "zero" is defined. The rules allow the manipulation of algebraic expressions abstractly without reference to the internal structure of the objects. In addition, Expressions can be manipulated with dotExpand[expr] and dotCollect[expr, var]. To take an example from econometrics, In[1]:= <<FRB`DotAlgebra` (* load the package *) In[2]:= e = y - dot[x, b] (* define the residual error *) Out[2]= y - x.b In[3]:= ssq = dot[tr[e], e] (* define the sum of squares *) Out[3]= (-b'.x' + y').(y - x.b) In[4]:= dssq = dotD[ssq, b] (* differentiate the sum *) Out[4]= -2 x'.y + 2 x'.x.b In[5]:= dotSolve[dssq == zero, b] (* set the result to zero and solve *) -1 Out[5]= {{b -> (x'.x) .x'.y}} Remarks: dotSolve calls Solve, which in turn calls InverseFunction. InverseFunction is defined for dot with various arguments in this package that simply assumes the appropriate arguments are invertable. dotD replaces dot with Dot, calls D, and re-replaces Dot with dot. This is done to get the chain rule right. Rules for unitary matrices are not included but could be easily added. I would be happy to e-mail the package to any interested parties. Any feedback would be welcomed. Mark Fisher Trading Risk Analysis Federal Reserve Board, Washington, DC mfisher at frb.gov