help-octave
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: eigenvectors


From: John W. Eaton
Subject: Re: eigenvectors
Date: Wed, 9 Jun 1999 16:04:13 -0500 (CDT)

On  9-Jun-1999, address@hidden <address@hidden> wrote:

| Ahh, I'd forgotten about the eig function.  I was looking in the help
| under matrix factorizations and eig wasn't listed.  It's under basic
| matrix functions.

Oops.  I think I should move it.

| Thanks,
| 
| On Wed, 9 Jun 1999, Nimrod Mesika wrote:
| 
| > address@hidden wrote:
| > > 
| > >         Q = inv(X)*D*X
| > > 
| > use   [X,D] = eig(Q);
| > 
| > D is a diagonal matrix (the elements are the eigenvalues of Q: lambda1,
| > lambda2, etc..).
| > X is a matrix of eigenvectors.
| > 
| > Actually, since octave returns X as a unitary matrix (a matrix for which
| > inv(A)=A') you also have the simpler expression:
| > 
| > Q = X' * D * X;

Except that I think the expression should be

  Q = X * D * X'

For example, a quick check shows

  octave:15> q = hilb (3);
  octave:16> [x, d] = eig (q)
  x =

    -0.12766   0.54745   0.82704
     0.71375  -0.52829   0.45986
    -0.68867  -0.64901   0.32330

  d =

    0.00269  0.00000  0.00000
    0.00000  0.12233  0.00000
    0.00000  0.00000  1.40832

  octave:17> x*d*x' - q
  ans =

      0.0000e+00    0.0000e+00    5.5511e-17
      0.0000e+00    0.0000e+00    5.5511e-17
      5.5511e-17    5.5511e-17   -5.5511e-17

  octave:18> x'*d*x - q
  ans =

    -0.269717   0.083138  -0.607023
     0.083138   0.294810  -0.573999
    -0.607023  -0.573999  -0.025093


Also note that this diagonalization can fail if you have repeated
eigenvalues.  For example, try q = [1, 2, 3; 0, 1, 2; 0, 0, 3].

jwe



---------------------------------------------------------------------
Octave is freely available under the terms of the GNU GPL.  To ensure
that development continues, see www.che.wisc.edu/octave/giftform.html
Instructions for unsubscribing: www.che.wisc.edu/octave/archive.html
---------------------------------------------------------------------



reply via email to

[Prev in Thread] Current Thread [Next in Thread]