Solving Determinant w/ Symbolic Values?

16 次查看(过去 30 天)
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?

采纳的回答

Star Strider
Star Strider 2014-10-29
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 个评论
Star Strider
Star Strider 2020-12-14
My pleasure!
Thank you!
(A Vote would be appreciated!)
Aditya Vikram Singh
@Star Strider can you please also tell how to obtain the fourth degree equation in omega here with coeffiecient of each term in omega.

请先登录,再进行评论。

更多回答(3 个)

Carlen
Carlen 2014-10-29
编辑:Carlen 2014-10-29
Awesome thanks! If I wanted to solve for w^2 instead of w is there a way to do that?
  1 个评论
Star Strider
Star Strider 2014-10-29
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.

请先登录,再进行评论。


Carlen
Carlen 2014-10-30
Thanks a lot for the help!

Caio Contezini
Caio Contezini 2020-11-18
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