How to get roots of determinant (characteristic) equation?

36 views (last 30 days)
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!

Accepted Answer

Star Strider
Star Strider on 30 Apr 2014
Edited: Star Strider on 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 Comments

Sign in to comment.

More Answers (1)

Pratik Baraiya
Pratik Baraiya on 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

Community Treasure Hunt

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

Start Hunting!