help solving polynomial equation
Afficher commentaires plus anciens
clc
clear
syms G J E I l b q Cla ru Ru U w
beta=((E*I)/(G*J));
landa=l/b;
K=((G*J)/l)*[ ((256*beta)/(landa^2)), 0 ((-80*beta)/(landa^2)) , 0;
0, 16/3 , 0 , -8/3;
((-80*beta)/(landa^2)), 0, ((28*beta)/(landa^2)), 0;
0, -8/3, 0, 7/3];
M=2*b^4*l*Ru*[64/105 4/15 -16/105 1/15
4/15 2/15 -1/15 1/60
-16/105 -1/15 4/105 -1/60
1/15 1/60 -1/60 1/30];
A=pi*b*(l/6)*[0 4*b 0 4*b
0 8 0 8
0 b 0 b
0 2 0 2];
B=pi*b*(l/6)*[-4*b 0 -4*b 0
-8 8*b -8 8*b
-b 0 -b 0
-2 2*b -2 2*b];
C=pi*b^2*(l/6)*[0 -b^2/2 0 -b^2/2
-4 0 -4 0
0 -b^2/8 0 -b^2/8
-1 0 -1 0];
Meq=M-ru*C;
Keq=K-ru*U^2*A;
Deq=-ru*U*B;
H=(-w^2)*Meq+(1i*w)*Deq+Keq;
v=det(H)
d=solve(v==0,w)
the above code didnt give the roots of w as function of U, pleas help why ?
Réponses (1)
det(H) is a polynomial of degree 10 in w. Since the roots of polynomials of degree > 4 can't explicitly be given, you will have to use the numerical "roots" or the symbolic "root".
Before, you will have to give numerical values to all other symbolic variables involved.
2 commentaires
mammad dehghan
le 1 Mar 2022
Torsten
le 1 Mar 2022
Then do after the line v = det(H)
vsubs = subs(v,G,...,J,...,E,...etc);
R = solve(vsubs,U);
Unum = vpa(R )
Catégories
En savoir plus sur Symbolic Math Toolbox dans Centre d'aide et File Exchange
Produits
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!