roots of 3*3 matrix determinant

2 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
Cem Eren Aslan
Cem Eren Aslan on 5 Jan 2022
Yes, i have, but result is as follows;
root(z^3 - (131891655112916159*z^2)/26388279066624 + (692241875910773148691733542859037*z)/309485009821345068724781056 - 5152005758176027364447462631233389326948016877/42535295865117307932921825928971026432, z, 1)
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)

Categories

Find more on Creating and Concatenating Matrices in Help Center and File Exchange

Community Treasure Hunt

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

Start Hunting!