2
$\begingroup$

I have the following $8 \times 8$ matrix

{{1/3 (2 c[0,0]-c[1,0]-c[2,0]),(c[1,0]-c[2,0])/Sqrt[3],0,1/3 (-1+c[0,0]+c[0,1]+3 c[0,2]+c[1,0]+c[1,1]+c[2,0]+c[2,1]),-((-1+c[0,0]+c[0,1]+c[0,2]+c[1,0]+c[1,1]+2 c[1,2]+c[2,0]+c[2,1])/Sqrt[3]),1/3 (2 c[0,1]-c[1,1]-c[2,1]),(c[1,1]-c[2,1])/Sqrt[3],0},{(c[1,0]-c[2,0])/Sqrt[3],1/3 (-2 c[0,0]+c[1,0]+c[2,0]),0,(-1+c[0,0]+c[0,1]+c[0,2]+c[1,0]+c[1,1]+2 c[1,2]+c[2,0]+c[2,1])/Sqrt[3],1/3 (-1+c[0,0]+c[0,1]+3 c[0,2]+c[1,0]+c[1,1]+c[2,0]+c[2,1]),(c[1,1]-c[2,1])/Sqrt[3],1/3 (-2 c[0,1]+c[1,1]+c[2,1]),0},{0,0,-(1/3)+c[0,0]+c[1,0]+c[2,0],0,0,0,0,(-1+c[0,0]+2 c[0,1]+c[1,0]+2 c[1,1]+c[2,0]+2 c[2,1])/Sqrt[3]},{1/3 (2 c[0,1]-c[1,1]-c[2,1]),(c[1,1]-c[2,1])/Sqrt[3],0,1/3 (2 c[0,0]-c[1,0]-c[2,0]),(-c[1,0]+c[2,0])/Sqrt[3],1/3 (-1+c[0,0]+c[0,1]+3 c[0,2]+c[1,0]+c[1,1]+c[2,0]+c[2,1]),(-1+c[0,0]+c[0,1]+c[0,2]+c[1,0]+c[1,1]+2 c[1,2]+c[2,0]+c[2,1])/Sqrt[3],0},{(-c[1,1]+c[2,1])/Sqrt[3],1/3 (2 c[0,1]-c[1,1]-c[2,1]),0,(-c[1,0]+c[2,0])/Sqrt[3],1/3 (-2 c[0,0]+c[1,0]+c[2,0]),-((-1+c[0,0]+c[0,1]+c[0,2]+c[1,0]+c[1,1]+2 c[1,2]+c[2,0]+c[2,1])/Sqrt[3]),1/3 (-1+c[0,0]+c[0,1]+3 c[0,2]+c[1,0]+c[1,1]+c[2,0]+c[2,1]),0},{1/3 (-1+c[0,0]+c[0,1]+3 c[0,2]+c[1,0]+c[1,1]+c[2,0]+c[2,1]),(-1+c[0,0]+c[0,1]+c[0,2]+c[1,0]+c[1,1]+2 c[1,2]+c[2,0]+c[2,1])/Sqrt[3],0,1/3 (2 c[0,1]-c[1,1]-c[2,1]),(-c[1,1]+c[2,1])/Sqrt[3],1/3 (2 c[0,0]-c[1,0]-c[2,0]),(c[1,0]-c[2,0])/Sqrt[3],0},{(-1+c[0,0]+c[0,1]+c[0,2]+c[1,0]+c[1,1]+2 c[1,2]+c[2,0]+c[2,1])/Sqrt[3],1/3 (1-c[0,0]-c[0,1]-3 c[0,2]-c[1,0]-c[1,1]-c[2,0]-c[2,1]),0,(c[1,1]-c[2,1])/Sqrt[3],1/3 (2 c[0,1]-c[1,1]-c[2,1]),(c[1,0]-c[2,0])/Sqrt[3],1/3 (-2 c[0,0]+c[1,0]+c[2,0]),0},{0,0,-((-1+c[0,0]+2 c[0,1]+c[1,0]+2 c[1,1]+c[2,0]+2 c[2,1])/Sqrt[3]),0,0,0,0,-(1/3)+c[0,0]+c[1,0]+c[2,0]}}

It has forty non-zero entries, some of which are duplicates and some of which are the negatives of others. I want to map the (1,1)-entry to t[1], and succeeding entries to t[i] or to -t[i]--taking the identities and "negative identities" into account--so that the length of the array of t's is minimal.

In other words, what is the minimal number of t[i]'s do I need to recode the original $8 \times 8$ matrix, and what is the mapping achieving this?

My ultimate aim is to obtain the product and sum of the singular values of the matrix, and hope that a succinct recoding of it might facilitate such a task.

$\endgroup$

1 Answer 1

2
$\begingroup$
elems = DeleteDuplicates[DeleteCases[Flatten[mat], 0], Abs[#1] == Abs[#2] &];
tt = Array[t, Length[elems]];
mat /. Thread[Join[elems, -elems] -> Join[tt, -tt]] // TeXForm

$$\left( \begin{array}{cccccccc} t(1) & t(2) & 0 & t(3) & t(4) & t(5) & t(6) & 0 \\ t(2) & t(7) & 0 & -t(4) & t(3) & t(6) & t(8) & 0 \\ 0 & 0 & t(9) & 0 & 0 & 0 & 0 & t(10) \\ t(5) & t(6) & 0 & t(1) & t(11) & t(3) & -t(4) & 0 \\ t(12) & t(5) & 0 & t(11) & t(7) & t(4) & t(3) & 0 \\ t(3) & -t(4) & 0 & t(5) & t(12) & t(1) & t(2) & 0 \\ -t(4) & t(13) & 0 & t(6) & t(5) & t(2) & t(7) & 0 \\ 0 & 0 & -t(10) & 0 & 0 & 0 & 0 & t(9) \\ \end{array} \right)$$

$\endgroup$
3
  • $\begingroup$ Thanks! Well, if one doesn't check for "negative identities", one gets $t[i], i=1,\ldots,15$, while checking gives us $t[i], i=1,\ldots,13$, certainly a reduction, but apparently not enough of one to make a SingularValueList computation feasible. $\endgroup$ Commented Apr 15, 2020 at 15:26
  • $\begingroup$ You might be able to get something usable from Eigenvalues[Transpose[mat].mat] $\endgroup$ Commented Apr 15, 2020 at 15:27
  • $\begingroup$ In fact, SingularValueList[] works on symbolic matrices, but the results are expectedly nightmarishly long in most cases. $\endgroup$ Commented Apr 15, 2020 at 15:30

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.