Left Nullspace of A

The Left Nullspace of A is just the nullspace of Transpose[A]. Use the above except use it on Transpose[A].

Consider A=Transpose[Transpose[A]]. If M is the GJSF of A, then M=D.A Partition D by rows into D=Transpose[D11 D21], where D11 corresponds to the nonzero rows of M and D21 corresponds to the zero rows of M. The columns of Transpose[D21] form the standard basis for the Left Nullspace of A.

In[52]:=

  a={{1,2,1,2},{2,1,2,1},{3,2,3,2},{3,3,3,3},{5,3,5,3}};
  MatrixForm[a]

Out[52]=

  1   2   1   2
  
  2   1   2   1
  
  3   2   3   2
  
  3   3   3   3
  
  5   3   5   3

In[53]:=

  aI=AppendRows[a,IdentityMatrix[5]];
  MatrixForm[aI]

Out[53]=

  1   2   1   2   1   0   0   0   0
  
  2   1   2   1   0   1   0   0   0
  
  3   2   3   2   0   0   1   0   0
  
  3   3   3   3   0   0   0   1   0
  
  5   3   5   3   0   0   0   0   1

In[54]:=

  GJSFofaI=RowReduce[aI];
  MatrixForm[GJSFofaI]

  General::spell: 
Possible spelling error: new symbol name "GJSFofaI"
is similar to existing symbols {GJSFofAI, GJSFofatI}.

Out[54]=

                                                     1
                                                   -(-)
  1      0      1      0      0      0      0        2
   
        1
        -
        2
  
                                                   5
                                                   -
  0      1      0      1      0      0      0      6
   
          1
        -(-)
          2
  
                                                     7
                                                   -(-)
  0      0      0      0      1      0      0        6
   
        1
        -
        2
  
                                                   1
                                                   -
  0      0      0      0      0      1      0      6
   
          1
        -(-)
          2
  
                                                     1
                                                   -(-)
  0      0      0      0      0      0      1        6
   
          1
        -(-)
          2

Because this is large, let's get the last five columns; that will be D. Notice the TakeColumns command. The -5 means the last four columns.

In[55]:=

  Clear[d]
  d=TakeColumns[GJSFofaI,-5];
  MatrixForm[d]

Out[55]=

                         1    1
                       -(-)   -
  0      0      0        2    2
  
                       5        1
                       -      -(-)
  0      0      0      6        2
  
                         7    1
                       -(-)   -
  1      0      0        6    2
  
                       1        1
                       -      -(-)
  0      1      0      6        2
  
                         1      1
                       -(-)   -(-)
  0      0      1        6      2

The last three rows correspond to the nonzero rows of M. The standard basis for the Left Nullspace of A is
{Transpose[1 0 0 -7/6 1/2], Transpose[0 1 0 1/6 -1/2],
Transpose[0 0 1 -1/6 -1/2]}.

Up to Bases for These Subspaces