MathGroup Archive 1997

[Date Index] [Thread Index] [Author Index]

Search the Archive

Re: Numerical Left Eigenvectors

  • To: mathgroup at smc.vnet.net
  • Subject: [mg6395] Re: [mg6369] [mg6369] Numerical Left Eigenvectors
  • From: seanross at worldnet.att.net
  • Date: Sat, 15 Mar 1997 01:21:14 -0500 (EST)
  • Sender: owner-wri-mathgroup at wolfram.com

Gregory Dwyer wrote:
> 
> Greetings -
> 
> When I use the "eigenvector" function to numerically calculate
> eigenvectors, Mathematica seems to assume that I always want right
> eigenvectors.  Is there some way to numerically calculate left eigenvectors?
> 
> Thanks.
> 
> Greg Dwyer.
> Entomology, UMASS Amherst
> dwyer at ent.umass.edu



I tried the following code in mathematica 3.0.  It looks bad in the 
email browser, but if you copy it into a notebook it should become 
transparent.  Anyway, it confirms that Matrix.columnvector = 
rowvector.Transpose[Matrix] which means that the "right eigenvectors" of 
a matrix are equal to the transpose of the "left eigenvectors" of its 
transpose.  The test matrix I used was a 5 x 5 which should be large 
enough to avoid any special cases that commonly occur in the smaller 
ones.

Thus, the statement Eigenvectors[Transpose[matrix]] should return your 
"left" eigenvectors.
   This, of course, assumes that I guessed correctly what you meant by 
left and right eigenvectors and they are:
Matrix.righteigenvector=constant.righteigenvector 
lefteigenvector.Matrix=constant.lefteigenvector


In[1]:=
\!\(\*
  RowBox[{
    RowBox[{"A", "=", 
      RowBox[{"(", GridBox[{
            {"a11", "a12", "a13", "a14", "a15"},
            {"a21", "a22", "a23", "a24", "a25"},
            {"a31", "a32", "a33", "a34", "a35"},
            {"a41", "a42", "a43", "a44", "a45"},
            {"a51", "a52", "a53", "a54", "a55"}
            }], ")"}]}], ";", "\n", 
    RowBox[{"x", "=", 
      RowBox[{"(", GridBox[{
            {"x1"},
            {"x2"},
            {"x3"},
            {"x4"},
            {"x5"}
            }], ")"}]}], ";"}]\)
In[4]:=
MatrixForm[Dot[A,x]]
Out[4]//MatrixForm=
\!\(\*
  TagBox[
    RowBox[{"(", GridBox[{
          {\(a11\ x1 + a12\ x2 + a13\ x3 + a14\ x4 + a15\ x5\)},
          {\(a21\ x1 + a22\ x2 + a23\ x3 + a24\ x4 + a25\ x5\)},
          {\(a31\ x1 + a32\ x2 + a33\ x3 + a34\ x4 + a35\ x5\)},
          {\(a41\ x1 + a42\ x2 + a43\ x3 + a44\ x4 + a45\ x5\)},
          {\(a51\ x1 + a52\ x2 + a53\ x3 + a54\ x4 + a55\ x5\)}
          }], ")"}],
    (MatrixForm[ #]&)]\)
In[9]:=
MatrixForm[Dot[Flatten[Transpose[x]],Transpose[A]]]
Out[9]//MatrixForm=
\!\(\*
  InterpretationBox[
    RowBox[{"(", GridBox[{
          {\(a11\ x1 + a12\ x2 + a13\ x3 + a14\ x4 + a15\ x5\)},
          {\(a21\ x1 + a22\ x2 + a23\ x3 + a24\ x4 + a25\ x5\)},
          {\(a31\ x1 + a32\ x2 + a33\ x3 + a34\ x4 + a35\ x5\)},
          {\(a41\ x1 + a42\ x2 + a43\ x3 + a44\ x4 + a45\ x5\)},
          {\(a51\ x1 + a52\ x2 + a53\ x3 + a54\ x4 + a55\ x5\)}
          }], ")"}],
    MatrixForm[ {
      Plus[ 
        Times[ a11, x1], 
        Times[ a12, x2], 
        Times[ a13, x3], 
        Times[ a14, x4], 
        Times[ a15, x5]], 
      Plus[ 
        Times[ a21, x1], 
        Times[ a22, x2], 
        Times[ a23, x3], 
        Times[ a24, x4], 
        Times[ a25, x5]], 
      Plus[ 
        Times[ a31, x1], 
        Times[ a32, x2], 
        Times[ a33, x3], 
        Times[ a34, x4], 
        Times[ a35, x5]], 
      Plus[ 
        Times[ a41, x1], 
        Times[ a42, x2], 
        Times[ a43, x3], 
        Times[ a44, x4], 
        Times[ a45, x5]], 
      Plus[ 
        Times[ a51, x1], 
        Times[ a52, x2], 
        Times[ a53, x3], 
        Times[ a54, x4], 
        Times[ a55, x5]]}]]\)


  • Prev by Date: system of equations
  • Next by Date: Re: Re: REQ: (a+b)n
  • Previous by thread: Re: Numerical Left Eigenvectors
  • Next by thread: Re: Numerical Left Eigenvectors