find the values of a variable for which the determinant of the matrix become zero?

조회 수: 5 (최근 30일)
a = 2e-3;
X = 150-3;
h = 20e-3;
b = 20e-3;
A = b*h;
l = 500e-3;
I = (b*(h^3))/12;
p = 2700;
E= 69e9;
v12 = 0.33;
j = 0.016;
Kt = 5.375588477512108e+05;
L = ((w^2*p*A*l^4)/(E*I))^(1/4);
Q = [1 0 1 0 0 0 0 0;...
0 1 0 1 0 0 0 0;...
cosh((L*X)/l) sinh((L*X)/l) cos((L*X)/l) sin((L*X)/l) -cosh((L*X)/l) -sinh( (L*X)/l) -cos((L*X)/l) -sin((L*X)/l) ;...
sinh((L*X)/l) cosh((L*X)/l) sin((L*X)/l) -cos((L*X)/l) -sinh((L*X)/l) -cosh((L*X)/l) -sin((L*X)/l) cos((L*X)/l) ;...
cosh((L*X)/l) sinh((L*X)/l) -cos((L*X)/l) -sin((L*X)/l) -cosh((L*X)/l) -sinh((L*X)/l) cos((L*X)/l) sin((L*X)/l);...
0 0 0 0 cosh(L) sinh(L) -cos(L) -sin(L);...
0 0 0 0 sinh(L) cosh(L) sin(L) -cos(L);...
cosh((L*X)/l)+((Kt*l)/(E*I*L))*sin((L*X)/l) sinh((L*X)/l)+((Kt*l)/(E*I*L))*cosh((L*X)/l) -cos((L*X)/l)-((Kt*l)/(E*I*L))*sin((L*X)/l) -sin((L*X)/l)+((Kt*l)/(E*I*L))*cos((L*X)/l) ((Kt*l)/(E*I*L))*sinh((L*X)/l) ((Kt*l)/(E*I*L))*cosh((L*X)/l) ((Kt*l)/(E*I*L))*sin((L*X)/l) ((Kt*l)/(E*I*L))*cos((L*X)/l)];
det(Q)
A = det(Q) ==0;
solve (A,L)
here I am finding the natural frequencies of beam.
I need to find w values for which the determinant of Q become zero, there will be n number of w values.
please help me to find the solution
Thank you.

채택된 답변

Walter Roberson
Walter Roberson 2021년 9월 16일
syms w real
a = 2e-3;
X = 150-3;
h = 20e-3;
b = 20e-3;
A = b*h;
l = 500e-3;
I = (b*(h^3))/12;
p = 2700;
E= 69e9;
v12 = 0.33;
j = 0.016;
Kt = 5.375588477512108e+05;
L = ((w^2*p*A*l^4)/(E*I))^(1/4);
Q = [1 0 1 0 0 0 0 0;...
0 1 0 1 0 0 0 0;...
cosh((L*X)/l) sinh((L*X)/l) cos((L*X)/l) sin((L*X)/l) -cosh((L*X)/l) -sinh( (L*X)/l) -cos((L*X)/l) -sin((L*X)/l) ;...
sinh((L*X)/l) cosh((L*X)/l) sin((L*X)/l) -cos((L*X)/l) -sinh((L*X)/l) -cosh((L*X)/l) -sin((L*X)/l) cos((L*X)/l) ;...
cosh((L*X)/l) sinh((L*X)/l) -cos((L*X)/l) -sin((L*X)/l) -cosh((L*X)/l) -sinh((L*X)/l) cos((L*X)/l) sin((L*X)/l);...
0 0 0 0 cosh(L) sinh(L) -cos(L) -sin(L);...
0 0 0 0 sinh(L) cosh(L) sin(L) -cos(L);...
cosh((L*X)/l)+((Kt*l)/(E*I*L))*sin((L*X)/l) sinh((L*X)/l)+((Kt*l)/(E*I*L))*cosh((L*X)/l) -cos((L*X)/l)-((Kt*l)/(E*I*L))*sin((L*X)/l) -sin((L*X)/l)+((Kt*l)/(E*I*L))*cos((L*X)/l) ((Kt*l)/(E*I*L))*sinh((L*X)/l) ((Kt*l)/(E*I*L))*cosh((L*X)/l) ((Kt*l)/(E*I*L))*sin((L*X)/l) ((Kt*l)/(E*I*L))*cos((L*X)/l)];
detQ = det(Q)
detQ = 
sol3 = vpasolve(detQ, -1)
sol3 = 
subs(detQ, w, sol3)
ans = 
fplot(detQ, [-1e-2 1e-2])
sol1 = vpasolve(detQ, -1000)
sol1 = 
subs(detQ, w, sol1)
ans = 
0.0
vpa(subs(detQ, w, -1000))
ans = 
3.8828224224878183459368954124443e+1083
vpa(subs(diff(detQ,w),w,sol1))
ans = 
1.7469061892324894642718882345277e+1084
There might be additional solutions, but you can see that the slope is impossibly steep... I am not convinced that the solutin near -1000 is real: if you bump the digits up to 50, -1000.0 shows as the solution but substituting that back in shows a distinct non-zero value.
  댓글 수: 7
Mani S
Mani S 2021년 9월 22일
Respected walter Roberson, there were some mistakes,I have modified matrix. please try this time
syms w
a = 2e-3;
X = 98.4e-3;
h = 10e-3;
b = 20e-3;
A = b*h;
l = 820e-3;
I = (b*(h^3))/12;
p = 2700;
E= 72e9;
v12 = 0.33;
L = ((w^2*p*A*l^4)/(E*I))^(1/4);
j = 0.016;
%j = 1.8624*(a /h)^2 - 3.95*(a/h)^3 + 16.375*(a/h)^4 - 37.226*(a/h)^5 + 76.81*(a/h)^6 - 126.9*(a/h)^7+ 172*(a/h)^8 - 143.97*(a/h)^9 + 66.56*(a/h)^10
Kt = ((E*I)/(6*(1-v12^2)*h))*(1/j)
Q = [1 0 1 0 0 0 0 0;...
0 1 0 1 0 0 0 0;...
cosh((L*X)/l) sinh((L*X)/l) cos((L*X)/l) sin((L*X)/l) -cosh((L*X)/l) -sinh( (L*X)/l) -cos((L*X)/l) -sin((L*X)/l) ;...
sinh((L*X)/l) cosh((L*X)/l) sin((L*X)/l) -cos((L*X)/l) -sinh((L*X)/l) -cosh((L*X)/l) -sin((L*X)/l) cos((L*X)/l) ;...
cosh((L*X)/l) sinh((L*X)/l) -cos((L*X)/l) -sin((L*X)/l) -cosh((L*X)/l) -sinh((L*X)/l) cos((L*X)/l) sin((L*X)/l);...
0 0 0 0 cosh(L) sinh(L) -cos(L) -sin(L);...
0 0 0 0 sinh(L) cosh(L) sin(L) -cos(L);...
cosh((L*X)/l)+((Kt*l)/(E*I*L))*sin((L*X)/l) sinh((L*X)/l)+((Kt*l)/(E*I*L))*cosh((L*X)/l) -cos((L*X)/l)-((Kt*l)/(E*I*L))*sin((L*X)/l) -sin((L*X)/l)+((Kt*l)/(E*I*L))*cos((L*X)/l) -((Kt*l)/(E*I*L))*sinh((L*X)/l) -((Kt*l)/(E*I*L))*cosh((L*X)/l) ((Kt*l)/(E*I*L))*sin((L*X)/l) -((Kt*l)/(E*I*L))*cos((L*X)/l)];
det(Q)
A = det(Q) ==0;
solve (A,w)
the solutions to this problem are .
w1= 12.164Hz,
w2= 76.5471Hz,
w3= 214.6394Hz,
w4=420.4588Hz.
Walter Roberson
Walter Roberson 2021년 9월 22일
No, none of the
format long g
syms w
a = 2e-3;
X = 98.4e-3;
h = 10e-3;
b = 20e-3;
A = b*h;
l = 820e-3;
I = (b*(h^3))/12;
p = 2700;
E= 72e9;
v12 = 0.33;
L = ((w^2*p*A*l^4)/(E*I))^(1/4);
j = 0.016;
%j = 1.8624*(a /h)^2 - 3.95*(a/h)^3 + 16.375*(a/h)^4 - 37.226*(a/h)^5 + 76.81*(a/h)^6 - 126.9*(a/h)^7+ 172*(a/h)^8 - 143.97*(a/h)^9 + 66.56*(a/h)^10
Kt = ((E*I)/(6*(1-v12^2)*h))*(1/j)
Kt =
140276.06329256
Q = [1 0 1 0 0 0 0 0;...
0 1 0 1 0 0 0 0;...
cosh((L*X)/l) sinh((L*X)/l) cos((L*X)/l) sin((L*X)/l) -cosh((L*X)/l) -sinh( (L*X)/l) -cos((L*X)/l) -sin((L*X)/l) ;...
sinh((L*X)/l) cosh((L*X)/l) sin((L*X)/l) -cos((L*X)/l) -sinh((L*X)/l) -cosh((L*X)/l) -sin((L*X)/l) cos((L*X)/l) ;...
cosh((L*X)/l) sinh((L*X)/l) -cos((L*X)/l) -sin((L*X)/l) -cosh((L*X)/l) -sinh((L*X)/l) cos((L*X)/l) sin((L*X)/l);...
0 0 0 0 cosh(L) sinh(L) -cos(L) -sin(L);...
0 0 0 0 sinh(L) cosh(L) sin(L) -cos(L);...
cosh((L*X)/l)+((Kt*l)/(E*I*L))*sin((L*X)/l) sinh((L*X)/l)+((Kt*l)/(E*I*L))*cosh((L*X)/l) -cos((L*X)/l)-((Kt*l)/(E*I*L))*sin((L*X)/l) -sin((L*X)/l)+((Kt*l)/(E*I*L))*cos((L*X)/l) -((Kt*l)/(E*I*L))*sinh((L*X)/l) -((Kt*l)/(E*I*L))*cosh((L*X)/l) ((Kt*l)/(E*I*L))*sin((L*X)/l) -((Kt*l)/(E*I*L))*cos((L*X)/l)];
det(Q)
ans = 
A = det(Q);
%solve (A,w)
expects = [12.164, 76.5471, 214.6394, 420.4588] .';
digits(50)
for K = 1 : length(expects)
W = expects(K);
got(K,1) = subs(A, w, W);
sol = vpasolve(A, w, W);
if isempty(sol)
nearby(K,1) = nan;
val_nearby(K,1) = nan;
else
nearby(K,1) = sol;
val_nearby(K,1) = subs(A, w, sol);
end
end
double([expects, got, nearby, val_nearby])
ans = 4×4
12.164 -20185.0170574006 77.9685880444843 -1.44749574417154e-53 76.5471 -289.096868327054 77.9685880444843 -1.44749574417154e-53 214.6394 25085.7641362872 77.9685880444843 -1.44749574417154e-53 420.4588 22421.5359853579 491.06556340064 3.07614015113951e-53
fplot([A], expects(3)+[-1/100 1/100]); %ylim([-100 100])
testlocs = linspace(expects(3)-1/10, expects(3)+1/10, 50);
vals_at_test = double(subs(A, w, testlocs));
plot(testlocs, vals_at_test, '-*');
fplot(A, [1 2500])
Actual zeros: near 78, 491, 1300, 2600, possibly others

댓글을 달려면 로그인하십시오.

추가 답변 (0개)

카테고리

Help CenterFile Exchange에서 Creating and Concatenating Matrices에 대해 자세히 알아보기

Community Treasure Hunt

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

Start Hunting!

Translated by