How to get roots of determinant (characteristic) equation?

47 Ansichten (letzte 30 Tage)
Amit Kumar
Amit Kumar am 30 Apr. 2014
Kommentiert: Walter Roberson am 4 Okt. 2021
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!

Akzeptierte Antwort

Star Strider
Star Strider am 30 Apr. 2014
Bearbeitet: Star Strider am 30 Apr. 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 Kommentare

Melden Sie sich an, um zu kommentieren.

Weitere Antworten (1)

Pratik Baraiya
Pratik Baraiya am 4 Okt. 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 Kommentar
Walter Roberson
Walter Roberson am 4 Okt. 2021
What is your recommendation to proceed from fun to find the roots of fun ?

Melden Sie sich an, um zu kommentieren.

Community Treasure Hunt

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

Start Hunting!

Translated by