Message Boards Message Boards

Can you find the PseudoInverse of this matrix?

Posted 10 years ago

Please execute:

alpha = 4; word = 3;

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


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

POSTED BY: Douglas Youvan
4 Replies

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

POSTED BY: Frank Kampas


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

POSTED BY: Douglas Youvan

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
POSTED BY: Frank Kampas

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.

POSTED BY: Frank Kampas
Reply to this discussion
Community posts can be styled and formatted using the Markdown syntax.
Reply Preview
or Discard

Group Abstract Group Abstract