How can I find zero root for fifth eigenvalue of a matrix

2 views (last 30 days)
I need to find zero root for special eigenvalue of my matrix

Answers (1)

John D'Errico
John D'Errico on 4 Apr 2020
Sadly, the "fifth" eigenvalue of a matrix has no meaning, since the eigenvalues are not assured to arrive in any special order. It is generally true they TEND to be sorted in a vaguely decreasing order. But there is no assurance of that.
Worse, suppose we perturb the matrix slightly? Now the fifth eigenvalue need not be the "same" one as you found before.
I'm sorry, but your goal is a poorly posed one. At best, you might TRY to use a tool like eigenshuffle, a tool of mine posted on the file exchange. It tries to shuffle the eigenvalues and eigenvectors of a sequence of matrices to be in a consistent sequence. However, if you were to try to use it in a rootfinding context, it will probably fail, because then it will not know how to sequence the eigenvalues. eigenshuffle is designed to be passed a sequence of eigenvalue problems, all at once.
  8 Comments
Christine Tobler
Christine Tobler on 7 Apr 2020
I had understood that you were using the fzero function and suggested using the solve function instead. As I understood your matrix M is a symbolic variable, so it would not be an appropriate input to fzero.
Since you were looking for cases where one of the eigenvalues lambda is equal to zero, this is equivalent to looking for cases where det(M) == 0.
Here's an example for a very simple matrix M:
>> syms x
>> M = diag([x x+1 2*x x-1])
M =
[ x, 0, 0, 0]
[ 0, x + 1, 0, 0]
[ 0, 0, 2*x, 0]
[ 0, 0, 0, x - 1]
>> [U, D] = eig(M)
U =
[ 1, 0, 0, 0]
[ 0, 0, 0, 1]
[ 0, 1, 0, 0]
[ 0, 0, 1, 0]
D =
[ x, 0, 0, 0]
[ 0, 2*x, 0, 0]
[ 0, 0, x - 1, 0]
[ 0, 0, 0, x + 1]
>> solve(D(1, 1) == 0, x)
ans =
0
>> solve(det(M) == 0, x)
ans =
-1
0
0
1
Eigenvalue problems are expensive to solve in a symbolic way, so if the problem is not as simple as this example, the solution may take a long time, or the solver may fail to find a solution.
rouhangiz hassanali
rouhangiz hassanali on 8 Apr 2020
You describe very well that what I need to know.
Thank you so much for your answers, it was very very useful for me.

Sign in to comment.

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!