# roots of 3*3 matrix determinant

3 views (last 30 days)
Cem Eren Aslan on 5 Jan 2022
Edited: David Goodmanson on 8 Jan 2022
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
Walter Roberson on 5 Jan 2022
solve(det(M), 'maxdegree', 3)

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.