Can you find the PseudoInverse of this matrix?

Please execute:

alpha = 4; word = 3;

dict = Partition[Flatten[Tuples[IdentityMatrix[alpha], word]], (alpha*word)];

MatrixForm[dict]

Do you see an easy way to get the PseudoInverse without using Mathematica’s PseudoInverse function?

Other methods for finding the PseudoInverse require inverting the product of the matix with its transpose. That’s probably much more complex than the method used by the PseudoInverse function.

The product of the transpose of dict with dict is not of full rank and can’t be inverted.

In[26]:= test = {{1, 2}, {3, 5}, {7, 11}};

In[27]:= ps1 = PseudoInverse[test]

Out[27]= {{-(19/7), -(10/7), 8/7}, {12/7, 13/14, -(9/14)}}

In[29]:= ps2 = Inverse[Transpose[test].test].Transpose[test]

Out[29]= {{-(19/7), -(10/7), 8/7}, {12/7, 13/14, -(9/14)}}

In[30]:= alpha = 4; word = 3;

dict = Partition[
   Flatten[Tuples[IdentityMatrix[alpha], word]], (alpha*word)];

In[33]:= Dimensions[Transpose[dict].dict]

Out[33]= {12, 12}

In[35]:= MatrixRank[Transpose[dict].dict]

Out[35]= 10

Frank,

alpha=4; word=3 should yield a 64 x 12 matrix. I was trying to see someone would re-invent - or already knew - what you see on page 16 of:

Thanks,
Doug

The transpose of dict is 12 x 64, so Transpose[dict].dict is 12 x 12.