How to get roots of determinant (characteristic) equation?

22 vues (au cours des 30 derniers jours)
Amit Kumar
Amit Kumar le 30 Avr 2014
Hello all, I am solving an eigenvalue problem and giving symbolic matrix as input. I want to find roots of characteristic equation, I mean, roots of determinant of matrix equated to zero. Here I give script:
clear all;
close all;
clc;
syms w
A=[-2000*w^2+280*1e3,-280*1e3;280*1e3,-2000*w^2+280*1e3];
fun = matlabFunction(det(A))
I want to find roots of fun(). This is a polynomial equation of 4th order, so I should have 4 roots. If I use fzero, it just gives a local solution to problem, but I want to have all roots. Can you suggest something? Ofcourse, I can write coefficients of det(A) manually and pass it to roots([...]). But I don't want to write manually. I am even trying to bypass symbolics, as for large matrix, symbolic variables are computationally very expensive. Any comments? Thanks in advance!

Réponse acceptée

Star Strider
Star Strider le 30 Avr 2014
Modifié(e) : Star Strider le 30 Avr 2014
Use the Symbolic Math Toolbox solve function:
DA = det(A)
W = solve(DA,w)
produces:
W =
(140 + 140*i)^(1/2)
(140 - 140*i)^(1/2)
-(140 + 140*i)^(1/2)
-(140 - 140*i)^(1/2)
  4 commentaires
Amit Kumar
Amit Kumar le 30 Avr 2014
Thanks a lot!!!
Star Strider
Star Strider le 30 Avr 2014
My pleasure!

Connectez-vous pour commenter.

Plus de réponses (1)

Pratik Baraiya
Pratik Baraiya le 4 Oct 2021
clear all;
close all;
clc;
syms w
A=[-2000*w^2+280*1e3,-280*1e3;280*1e3,-2000*w^2+280*1e3];
fun = matlabFunction(det(A))
fun = function_handle with value:
@(w)w.^2.*-1.12e+9+w.^4.*4.0e+6+1.568e+11
  1 commentaire
Walter Roberson
Walter Roberson le 4 Oct 2021
What is your recommendation to proceed from fun to find the roots of fun ?

Connectez-vous pour commenter.

Catégories

En savoir plus sur Symbolic Math Toolbox dans Help Center et File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by