Box manipulation
- To: mathgroup at smc.vnet.net
- Subject: [mg13514] Box manipulation
- From: Silvia Heubach <silvi at nospam.cinenet.net>
- Date: Fri, 31 Jul 1998 04:33:28 -0400
- Sender: owner-wri-mathgroup at wolfram.com
I have ventured into the deep parts of the internal Mathematica
representations (at least for me). What I am trying to do is to
compute a general solution to a system of difference equations
in terms of the eigenvectors and eigenvalues. I have computed
these terms and would now like to output them in nice
mathematical form. I thought I had the solution until I came
across some eigenvalues that were square roots and eigenvectors
that were complex and resulted in sine and cosine terms. Below
is my partial solution. The lists A and B are just as an
example, but they reflect the structures I am dealing with. My
code works for lists A and B, and the output gives you the
format I would like to achieve. Lists A1 and B1 contain
elements for which the code does not work. I tried
unsucessfully commands like ToString or ToBoxes, but either its
not the right thing or I used it at the wrong place.
Any help is appreciated. Please email me directly at
silvi at cinenet.net, as I have unsubscribed for summer from the
list. Thanks in Advance
Silvia Heubach
**** This one works ***************************************
A={1,2,3,4}; (*to stand for eigenvalues *)
B={{1,2},{-3,2},{-1,0},{3,4}} ; (* to stand for eigenvectors*)
Clear[str];
str={"x(k)="};
solterms=Table[{SubscriptBox["c",ToString[i]],"*",SuperscriptBox[A[[i]],"k"],
"*","(",GridBox[Partition[B[[i]],1]],")","+"},{i,1,4}];
newstr=Drop[Flatten[AppendTo[str,solterms]],-1];
foo=RowBox[newstr]//DisplayForm;
Print[foo]
**** Here is where it breaks down - just different input, no change in
code
(except ajusting the names of the lists **************************
A1={1,Sqrt[2],3,4}; B1={{1,2},{Cos[2 k],0},{1,1},{Sin[-2 k],1}};
Clear[str];
str={"x(k)="};
solterms=Table[{SubscriptBox["c",ToString[i]],"*",SuperscriptBox[A1[[i]],"k"],
"*","(",GridBox[Partition[B1[[i]],1]],")","+"},{i,1,4}];
newstr=Drop[Flatten[AppendTo[str,solterms]],-1];
foo=RowBox[newstr]//DisplayForm;
Print[foo]
**********