Solving Determinant w/ Symbolic Values?

조회 수: 16 (최근 30일)
Carlen
Carlen 2014년 10월 29일
댓글: Aditya Vikram Singh 2021년 9월 5일
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
Aditya Vikram Singh 2021년 9월 5일
@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?

카테고리

Help CenterFile Exchange에서 Conversion Between Symbolic and Numeric에 대해 자세히 알아보기

Community Treasure Hunt

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

Start Hunting!

Translated by