How to get eigenvalues of a singular matrix with a variable?
5 次查看(过去 30 天)
显示 更早的评论
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 个评论
回答(1 个)
Divyam
2025-6-11
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 个评论
另请参阅
产品
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!