Generalised Eigenvalue Problem in Mathematica

In summary, the conversation discusses a problem with computing eigenvalues using Mathematica for a generalised eigenvalue problem with symmetric matrices containing real symbolic entries. The documentation does not provide a solution, but adding decimal points or converting to machine precision can resolve the issue. Using symbolic entries, such as inverse or characteristic polynomial, can also solve the problem. However, the generalized eigenvector command in Mathematica only works for non-exact numbers, which is not mentioned in the documentation.
  • #1
Hootenanny
Staff Emeritus
Science Advisor
Gold Member
9,622
9
I have a generalised eigenvalue problem of the form

[tex]A\boldsymbol{u} = \lambda B\boldsymbol{u}\;,[/tex]

where A and B are symmetric matrices with real symbolic entries. I'm trying to compute the eigenvalues with Mathematica using the command

Code:
Eigenvalues[{A,B}]

which according to the documentation should work. However, when I do, Mathematica returns the following error

Code:
Eigenvalues::exnum: Eigenvalues has received a matrix with non-numerical or exact elements.

The documentation is of no help. Does anyone have any suggestions?
 
Physics news on Phys.org
  • #2
This
Eigenvalues[{{{1, 2}, {4, 3}}, {{5, 6}, {4, 3}}}]
fails.

This
Eigenvalues[{{{1, 2}, {4, 3}}, {{5, 6}, {4, 3.}}}]
succeeds. Note that lone ".' means that at least one machine precision value shows up in every calculation and thus not all items are exact.

Is it possible that all the entries you have are exact integers or rationals or complex?

Toss in a few decimal points or add 0. to few entries and see if your error message disappears.
 
  • #3
Since you want to do the calculation with symbolic entries, try

Code:
Eigenvalues[Inverse[ B].A]

It's a little bit slower for real, nonexact matrices - but it will work for matrices with symbolic entries.

Of course, it might be better if you calculate the adjugate instead of the inverse (dividing by the determinant is unnecessary).

Or even just calculate the characteristic polynomial det(A - x B)=0 and solve for x.

I'm not sure why the generalized eigenvector command in Mathematica only works for non-exact (complex) numbers. http://en.wikipedia.org/wiki/Eigendecomposition_of_a_matrix#Generalized_eigenvalue_problem". You'd think that this would at least get a mention in the "Possible Issues" section...
 
Last edited by a moderator:

FAQ: Generalised Eigenvalue Problem in Mathematica

What is a generalised eigenvalue problem?

A generalised eigenvalue problem is a mathematical problem that involves finding the eigenvalues and eigenvectors of a pair of square matrices, A and B, that are related through the equation Ax = λBx, where λ is the eigenvalue and x is the eigenvector. This problem arises in many areas of science and engineering, and it is commonly solved using computational tools such as Mathematica.

How can Mathematica be used to solve a generalised eigenvalue problem?

Mathematica has built-in functions that can solve generalised eigenvalue problems, such as Eigenvalues and Eigensystem. These functions take the matrices A and B as inputs and return the eigenvalues and eigenvectors as outputs. Additionally, Mathematica has a variety of options and settings that can be used to refine the solutions and improve the accuracy of the results.

What are some applications of the generalised eigenvalue problem?

The generalised eigenvalue problem has many applications in fields such as physics, engineering, and statistics. It is used to study the stability of dynamic systems, to analyse vibrations and oscillations, and to solve partial differential equations. It is also used in data analysis, where it can be used to find the principal components of a dataset, which can help reduce the dimensionality of the data and identify important features.

What are the advantages of using Mathematica to solve a generalised eigenvalue problem?

Using Mathematica to solve a generalised eigenvalue problem has several advantages. Firstly, it is a powerful and versatile tool that can handle large and complex matrices efficiently. It also provides a user-friendly interface that allows for easy input and manipulation of the matrices and their solutions. Additionally, Mathematica has a wide range of built-in functions and algorithms that can help refine and improve the accuracy of the solutions.

Are there any limitations to using Mathematica for generalised eigenvalue problems?

While Mathematica is a powerful tool for solving generalised eigenvalue problems, there are some limitations to be aware of. One limitation is that it may not be the most efficient tool for very large matrices, as the computational time and memory requirements may become significant. Additionally, the accuracy of the solutions may be affected by the choice of algorithm and settings, so it is important to carefully consider these factors when using Mathematica for generalised eigenvalue problems.

Similar threads

Replies
3
Views
2K
Replies
1
Views
2K
Replies
2
Views
2K
Replies
12
Views
2K
Replies
2
Views
3K
Replies
2
Views
1K
Replies
4
Views
4K
Back
Top