roots of 3*3 matrix determinant

3 views (last 30 days)
Hello all,
I have a matrix as follows;
M = [k(1,1)-12*w k(1,2) k(1,3);k(2,1) k(2,2)-2*w k(2,3);k(3,1) k(3,2) k(3,3)-4*w ];
i want to solve and to find three roots of det(M)=0
how can i solve this?
thanks
  3 Comments
Walter Roberson
Walter Roberson on 5 Jan 2022
solve(det(M), 'maxdegree', 3)

Sign in to comment.

Accepted Answer

David Goodmanson
David Goodmanson on 6 Jan 2022
Edited: David Goodmanson on 8 Jan 2022
Hi Cern,
I assume you mean the three values of w that give a 0 determinant. Eig works for this.
K = rand(3,3)
c = diag([12 2 4]); % the three coefficients of w down the diagonal
Knew = inv(c)*K % multiply the first row of K by 1/12, second row by 1/2, etc.
w = eig(Knew) % roots
% check, should be small; they are.
det(K-w(1)*c)
det(K-w(2)*c)
det(K-w(3)*c)
K =
0.4169 0.3829 0.3334
0.3801 0.0297 0.9758
0.2133 0.4723 0.5554
Knew =
0.0347 0.0319 0.0278
0.1901 0.0148 0.4879
0.0533 0.1181 0.1389
w =
0.3447
0.0218
-0.1781
In practice, for larger matrices one would use c\K instead of inv(c)*K but the latter expression seems clearer in these circumstances.

More Answers (0)

Community Treasure Hunt

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

Start Hunting!

Translated by