Solving Determinant w/ Symbolic Values?

16 Ansichten (letzte 30 Tage)
Carlen
Carlen am 29 Okt. 2014
I essentially have this determinant here that I need to solve:
Just not sure how to do it symbolically in MATLAB without values...
Also, is there a way that I could then solve for w(omega) smybolically?

Akzeptierte Antwort

Star Strider
Star Strider am 29 Okt. 2014
If you have the Symbolic Math Toolbox, use the symbolic det function:
syms m1 m2 k1 k2 w
M = [(-m1*w^2 + k1) (-k1); (-k1) (-m2*w^2 + k1 + k2)];
detM = det(M);
w = solve(detM,w)
  4 Kommentare
Star Strider
Star Strider am 14 Dez. 2020
My pleasure!
Thank you!
(A Vote would be appreciated!)
Aditya Vikram Singh
Aditya Vikram Singh am 5 Sep. 2021
@Star Strider can you please also tell how to obtain the fourth degree equation in omega here with coeffiecient of each term in omega.

Melden Sie sich an, um zu kommentieren.

Weitere Antworten (3)

Carlen
Carlen am 29 Okt. 2014
Bearbeitet: Carlen am 29 Okt. 2014
Awesome thanks! If I wanted to solve for w^2 instead of w is there a way to do that?
  1 Kommentar
Star Strider
Star Strider am 29 Okt. 2014
My pleasure!
Probably the easiest way to solve for w^2 is simply to substitute w2 for it:
syms m1 m2 k1 k2 w w2
M = [(-m1*w2 + k1) (-k1); (-k1) (-m2*w2 + k1 + k2)];
detM = det(M);
w2 = solve(detM, w2)
That produces two quadratic roots.
If you want to use the roots as a function in other MATLAB code, use matlabFunction and its friends. It is much easier than coding it yourself, and it also vectorises the expression in the process.
For example:
wsq = matlabFunction(w2);
detmat = wsq(3, 5, 7, 13);
will produce a (2x1) vector of solutions.

Melden Sie sich an, um zu kommentieren.


Carlen
Carlen am 30 Okt. 2014
Thanks a lot for the help!

Caio Contezini
Caio Contezini am 18 Nov. 2020
Star Strider, how can I solve that if I dont have Symbolic Math Toolbox?

Community Treasure Hunt

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

Start Hunting!

Translated by