Effacer les filtres
Effacer les filtres

roots of 3*3 matrix determinant

2 vues (au cours des 30 derniers jours)
Cem Eren Aslan
Cem Eren Aslan le 5 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
  3 commentaires
Cem Eren Aslan
Cem Eren Aslan le 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 le 5 Jan 2022
solve(det(M), 'maxdegree', 3)

Connectez-vous pour commenter.

Réponse acceptée

David Goodmanson
David Goodmanson le 6 Jan 2022
Modifié(e) : David Goodmanson le 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.

Plus de réponses (0)

Catégories

En savoir plus sur Creating and Concatenating Matrices dans Help Center et File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by