Mathematica Eigensystem Calculation Taking Too Long

  • Context: Mathematica 
  • Thread starter Thread starter thatboi
  • Start date Start date
  • Tags Tags
    Calculation Mathematica
Click For Summary
SUMMARY

The discussion centers on the inefficiency of calculating the Eigensystem of a 5x5 matrix in Mathematica, particularly when using symbolic computation. Users highlight that the function Eigensystem can be extremely memory-intensive and may not yield results for matrices larger than 4x4 symbolically. A suggested solution is to utilize the Parallelize[] function for potentially improved performance. Additionally, the conversation emphasizes the feasibility of solving the problem numerically rather than symbolically.

PREREQUISITES
  • Familiarity with Mathematica programming language
  • Understanding of Eigensystem and its applications
  • Knowledge of symbolic versus numerical computation
  • Basic concepts of linear algebra, specifically eigenvalues and eigenvectors
NEXT STEPS
  • Explore the use of Parallelize[] in Mathematica for performance optimization
  • Research numerical methods for eigenvalue problems in large matrices
  • Learn about the limitations of symbolic computation in Mathematica, especially for matrices larger than 4x4
  • Investigate alternative approaches to solve for variables x_i without symbolic eigenvalue calculations
USEFUL FOR

Mathematica users, mathematicians, and researchers dealing with eigenvalue problems, particularly those working with larger matrices and seeking efficient computational strategies.

thatboi
Messages
130
Reaction score
20
Hey all,
I am currently trying to find the Eigensystem of the following 5x5 matrix in Mathematica. Unfortunately, doing so takes an insanely long time (I cannot even call Eigensystem[p][[1,1]] in a reasonable amount of time). Does anyone have any advice? Also I cannot simply redefine new variables for each of the differences x_{i}-x_{j} because I will need to solve for each x_{i} individually in an upcoming calculation so I do not think we can use some clever algebraic combination of the x_{i}-x_{j} to recover the x_{i} individually.

p = ({
{0, 1/(x1 - x2)^3, 1/(x1 - x3)^3, 1/(x1 - x4)^3, 1/(x1 - x5)^3},
{1/(x1 - x2)^3, 0, 1/(x2 - x3)^3, 1/(x2 - x4)^3, 1/(x2 - x5)^3},
{1/(x1 - x3)^3, 1/(x2 - x3)^3, 0, 1/(x3 - x4)^3, 1/(x3 - x5)^3},
{1/(x1 - x4)^3, 1/(x2 - x4)^3, 1/(x3 - x4)^3, 0, 1/(x4 - x5)^3},
{1/(x1 - x5)^3, 1/(x2 - x5)^3, 1/(x3 - x5)^3, 1/(x4 - x5)^3, 0}
});

Thanks!
 
Physics news on Phys.org
Have you considered Parallelize[] ? I think it is often used for the issue you describe -
 
Are you trying to compute the eigenvalues/vectors symbolically? That is (a) far more memory intensive than a numerical computation (according to https://reference.wolfram.com/language/ref/Eigensystem.html the memory required increases faster than exponentially with the size of the matrix), and (b) probably not possible for 5x5 or larger matrices in general, since it is not possible to solve a generic polynomial of degree 5 or higher by radicals. (I think it's significant that none of the examples on the page I linked attempt symbolic/exact calculations on anything larger than a 4x4 matrix.)

What is the actual problem you are trying to solve for the x_i? It may be possible to solve it numerically without trying to find symbolic expressions for the eigenvalues/vectors of a 5x5 matrix.
 
  • Like
Likes   Reactions: Delta2, jim mcnamara and DrClaude

Similar threads

  • · Replies 5 ·
Replies
5
Views
3K
  • · Replies 3 ·
Replies
3
Views
3K
  • · Replies 2 ·
Replies
2
Views
793
  • · Replies 1 ·
Replies
1
Views
948
  • · Replies 4 ·
Replies
4
Views
5K
  • · Replies 1 ·
Replies
1
Views
2K
Replies
1
Views
2K
  • · Replies 1 ·
Replies
1
Views
3K
  • · Replies 1 ·
Replies
1
Views
4K
  • · Replies 3 ·
Replies
3
Views
4K