Get Help

Turn on suggestions

Auto-suggest helps you quickly narrow down your search results by suggesting possible matches as you type.

Showing results for

- Community
- :
- PTC Mathcad
- :
- PTC Mathcad
- :
- Eigenvalues out of order

Options

- Subscribe to RSS Feed
- Mark Topic as New
- Mark Topic as Read
- Float this Topic for Current User
- Bookmark
- Subscribe
- Printer Friendly Page

Auto-suggest helps you quickly narrow down your search results by suggesting possible matches as you type.

Showing results for

Highlighted
##

- Mark as New
- Bookmark
- Subscribe
- Subscribe to RSS Feed
- Permalink
- Email to a Friend
- Notify Moderator

07-29-2010
06:53 PM

07-29-2010
06:53 PM

Eigenvalues out of order

I have a problem with the eigenvals() function. USALLY the results are sorted from largest to smallest, but occasionally they will be out of order. I have found the following simple matrix that demonstrates this:

[A] = 1.0053 1.0053 1.0053

1.0053 2.0001 2.0001

1.0053 2.0001 3.4365

eigenvals(A) = {5.301 0.337 0.803}

This can be a tremendous problem if, for example, I have a 100x100 matrix and I only need the first 3 eigenvalues and their associated eigenvectors.

See attached mathcad sheet with demo and illustration of what I go through to sort the values and vectors properly. Surely there must be a better way!

25 REPLIES 25

- Mark as New
- Bookmark
- Subscribe
- Subscribe to RSS Feed
- Permalink
- Email to a Friend
- Notify Moderator

07-29-2010
08:29 PM

07-29-2010
08:29 PM

Re: Eigenvalues out of order

No problem for any n x n out of "as big as can the matrix be" .

Mathcad 11 takes a size up to 4096 x 4096.

Will that be enough for your project?

jmG

- Mark as New
- Bookmark
- Subscribe
- Subscribe to RSS Feed
- Permalink
- Email to a Friend
- Notify Moderator

07-30-2010
02:41 PM

07-30-2010
02:41 PM

Re: Eigenvalues out of order

What???

I don't understand your answer. Perhaps you didn't understand my question.

I'm complaining that the returned eigenvalues are not sorted in order, and I would like to know if this is a bug. The eigenvalues are always sorted when I use functions in other languages or applications. I find it hard to believe that the Mathcad behavior is intentional.

Your response seems only to demonstrate a method of extracting a submatrix, and what large matrices it works with, but I don't care about that.

- Mark as New
- Bookmark
- Subscribe
- Subscribe to RSS Feed
- Permalink
- Email to a Friend
- Notify Moderator

07-30-2010
05:47 PM

07-30-2010
05:47 PM

Re: Eigenvalues out of order

DARYL BOGGS wrote:

I'm complaining that the returned eigenvalues are not sorted in order, and I would like to know if this is a bug. The eigenvalues are always sorted when I use functions in other languages or applications. I find it hard to believe that the Mathcad behavior is intentional.

I'm not sure that all maths applications return sorted eigenvalues - I've got a feeling that I've seen something about Maple not sorting and I don't know that there is a 'standard' as such (I've seen a few requests for reversing the sort order in Matlab as well). I believe that GNU has functions that allow the user to specify the sort order, but I haven't checked.

However, it is deliberate and the subject has been discussed before - see here for example.

You could get round your sort problem by cheating and stacking max(eigenvals)-eigenvals before sorting and then carrying out the same operation. See attached worksheet.

- Mark as New
- Bookmark
- Subscribe
- Subscribe to RSS Feed
- Permalink
- Email to a Friend
- Notify Moderator

07-30-2010
05:50 PM

07-30-2010
05:50 PM

Re: Eigenvalues out of order

In version 15 they are in order. They do fix some things, some of the time 🙂

If you really need only the first 3 out of 100 eigenvectors the best thing is not to get all the eignvectors in the first place though. Get the eigenvalues, sort them, and then get the first 3 eignevectors using the eigenvec function. Or you could use the syntax in the attached worksheet to get all of them.

- Mark as New
- Bookmark
- Subscribe
- Subscribe to RSS Feed
- Permalink
- Email to a Friend
- Notify Moderator

07-30-2010
07:24 PM

07-30-2010
07:24 PM

Re: Eigenvalues out of order

DARYL BOGGS wrote:

What???

I don't understand your answer. Perhaps you didn't understand my question.

I'm complaining that the returned eigenvalues are not sorted in order, and I would like to know if this is a bug. The eigenvalues are always sorted when I use functions in other languages or applications. I find it hard to believe that the Mathcad behavior is intentional.

Your response seems only to demonstrate a method of extracting a submatrix, and what large matrices it works with, but I don't care about that.

Eigenvalues arrive as they they are found. Easy to extract the three ones you want out of a vector of 1100 elements. If you think that the three such roots represent something about your project, just do. If Mathcad does not immediately do what you ask for, you can be sure that's because it has nothing to do with the maths of it ... and you won't even need the extractor [that you can recycle].

"The eigenvalues of a matrix m are the values lfor which one can find nonzero vectors xi such that m*xi = l*xi. The eigenvectors are the vectors xi.

Finding the eigenvalues of an n x n matrix in principle involves solving an nth degree polynomial equation. For n>5, therefore, the results cannot in general be expressed purely in terms of explicit radicals. Root objects can nevertheless always be used, although except for fairly sparse or otherwise simple matrices the expressions obtained are often unmanageably complex." [Mathematica].

jmG

- Mark as New
- Bookmark
- Subscribe
- Subscribe to RSS Feed
- Permalink
- Email to a Friend
- Notify Moderator

07-30-2010
07:47 PM

07-30-2010
07:47 PM

Re: Eigenvalues out of order

I was wondering what the three highest eigenvalues could represent wrt an "n x n" system. No abstract, not even a hint ! So, I will leave it there unless more help is specified c/w a work sheet and the issue of the project. Hopefully it has nothing to do with attempting to approximate something unknown.

Cheers Stuart, Richard

- Mark as New
- Bookmark
- Subscribe
- Subscribe to RSS Feed
- Permalink
- Email to a Friend
- Notify Moderator

07-30-2010
07:59 PM

07-30-2010
07:59 PM

Re: Eigenvalues out of order

jean Giraud wrote:

I was wondering what the three highest eigenvalues could represent wrt an "n x n" system.

For one example, look in the DAEP under principle component analysis.

- Mark as New
- Bookmark
- Subscribe
- Subscribe to RSS Feed
- Permalink
- Email to a Friend
- Notify Moderator

07-30-2010
08:27 PM

07-30-2010
08:27 PM

Re: Eigenvalues out of order

>For one example, look in the DAEP under principle component analysis.< [Richard]

__________________

Thanks Richard, I have recollection of the work you did. Mathematica does not sort eigenvalues.

- Mark as New
- Bookmark
- Subscribe
- Subscribe to RSS Feed
- Permalink
- Email to a Friend
- Notify Moderator

07-31-2010
05:53 AM

07-31-2010
05:53 AM

Re: Eigenvalues out of order

Ian Ward has a great solution to this problem in his post DynamAssist to the old collab.

I have borrowed it and found it very useful.

Top Tags