How to get eigenvalues of a singular matrix with a variable?
5 views (last 30 days)
Show older comments
I have a 16*16 symmetric,singular matrix, that has a variable, x, in some of it's elements. The theory is to find values of x that make the matrix determinant equal to zero. But, as I said, the matrix is singular and det(A) is always zero in matlab. I also tried eig(A), but it gives me answers that, in addition to being very long and undisplayable, are equations that still contain the variable! While I only want numberic answers in the output.
If this help, it is a FEM problem for finding natural frequencies by the stiffness and mass matrices.
regards.
1 Comment
Answers (1)
Divyam
on 11 Jun 2025
If a matrix is symbolically singular, MATLAB might simplify the determinants to zero regardless of whether the variable "x" changes that dependency as shown in the code below:
syms x
A = [1, 2; 2, 4 + x - x];
det(A)
Solving a symbolic determinant is very complicated for large matrices (of the order of 10x10) as the size of the determinant's expansion scales by
. This might prompt MATLAB to simply return a 0 or a huge unevaluated symbolic expression that can't be solved.

To solve this issue, you need to break down your problem into a generalized eigenvalue problem of the form
where your goal is to solve
and the eigenvalues are
.



After breaking down your matrix into the above form, you can use the "eig" function on the matrices K and M to solve for the eigenvalues numerically as now you are entirely avoiding the symbolic explosion caused by
scaling.

0 Comments
See Also
Categories
Find more on Linear Algebra in Help Center and File Exchange
Products
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!