Re: Sorting eigenvectors by eigenvalue

• To: mathgroup at smc.vnet.net
• Subject: [mg2070] Re: [mg2054] Sorting eigenvectors by eigenvalue
• From: Peder Thusgaard Ruhoff <ptk at imada.ou.dk>
• Date: Sat, 23 Sep 1995 20:35:35 -0400

```On Mon, 18 Sep 1995, William F. Campbell <valentin at wam.umd.edu> wrote:

>   I'm trying to use Sort to sort eigenvectors by eigenvalue.  The eignevectors
> are in a list of lists called vecs, and the eigenvalues in vals after the
> following function call on matrix aa:
>
>   {vals,vecs}=Eigensystem[aa]
>
>   Then I want to define an ordering function p so I can use Sort[vecs,p].
> I tried the following:
>
>   p[vecs[[i_]],vecs[[j_]]]:=Greater[Abs[vals[[i]],Abs[vals[[j]]]]
>
>   Mathematica wont parse vecs[[i_]] saying that i is neither an integer nor
> a list of integers.  How can I accomplish what I want to do?
> ...
>

Dear Bill Campbell,

I don't know if this is what you need, but here is a function that
sorts the eigenvalues and eigenvectors using Sort.

SortEigensystem[eigsys_] := Transpose[Sort[Transpose[eigsys]]]

SortEigensystem[eigsys_, p_] := Transpose[Sort[Transpose[eigsys], p]]

Note that you can specify you own ordering function (the second argument)
which is passed directly to Sort.

EXAMPLE:
========

In[1]:= SortEigensystem[eigsys_] := Transpose[Sort[Transpose[eigsys]]]

In[2]:= SortEigensystem[eigsys_, p_] := Transpose[Sort[Transpose[eigsys], p]]

In[3]:= mat = N[{{1,2,0},{2,3,4},{0,4,5}}]

Out[3]= {{1., 2., 0}, {2., 3., 4.}, {0, 4., 5.}}

In[4]:= MatrixForm[%]

Out[4]//MatrixForm= 1.   2.   0

2.   3.   4.

0    4.   5.

In[5]:= eigsys = Eigensystem[mat]

Out[5]= {{8.33816, 1.95205, -1.29021},

>    {{0.172027, 0.631179, 0.75632}, {0.786436, 0.374362, -0.491296},

>     {0.593233, -0.679313, 0.431981}}}

In[6]:= SortEigensystem[eigsys]

Out[6]= {{-1.29021, 1.95205, 8.33816},

>    {{0.593233, -0.679313, 0.431981}, {0.786436, 0.374362, -0.491296},

>     {0.172027, 0.631179, 0.75632}}}

In[7]:= SortEigensystem[eigsys, N[#1 > #2]&]

Out[7]= {{8.33816, 1.95205, -1.29021},

>    {{0.172027, 0.631179, 0.75632}, {0.786436, 0.374362, -0.491296},

>     {0.593233, -0.679313, 0.431981}}}

===============================================================================

Best wishes,

Peder

------------------------------------------------------------------------------
Peder Thusgaard Ruhoff                     Phone: (+45) 66 15 86 96, ext. 2411
Dept. of Mathematics and Computer Science  Fax:   (+45) 65 93 26 91
Odense University, Campusvej 55            Email: ptk at imada.ou.dk
DK-5230 Odense M, DENMARK

"It is important for him who wants to discover not to confine himself
to one chapter of science, but to keep in touch with various others."
------------------------------------------------------------------------------

```

• Prev by Date: Re: Dealing with Indeterminant points & ListPlot
• Next by Date: Re: Mathematica and NetScape
• Previous by thread: Re: Sorting eigenvectors by eigenvalue
• Next by thread: Re: Sorting eigenvectors by eigenvalue