How to get eigenvalues of a singular matrix with a variable?

6 visualizaciones (últimos 30 días)
siavash
siavash el 18 de Jun. de 2022
Respondida: Divyam el 11 de Jun. de 2025
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 comentario
Torsten
Torsten el 18 de Jun. de 2022
Editada: Torsten el 18 de Jun. de 2022
If you say that the matrix determinant is always zero, you already found the x-values that make the determinant zero: every x-values will do. Or do I misunderstand something ?

Iniciar sesión para comentar.

Respuestas (1)

Divyam
Divyam el 11 de Jun. de 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.

Categorías

Más información sobre Linear Algebra en Help Center y File Exchange.

Productos

Community Treasure Hunt

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

Start Hunting!

Translated by