in desperate need for help (Trigonometric equation)
2 次查看(过去 30 天)
显示 更早的评论
Good people of the internet,
I really need your help in solving this equation:
>> al=(((10^4+g^4)^0.5 -10^2)^0.5)*L;
>> bl=(((10^4+g^4)^0.5 +10^2)^0.5)*L;
>> char=2*al*bl*(1-cos(al)*cosh(bl))+(bl^2-al^2)*sin(al)*sinh(bl)
eqn=char==0
- sin(L*((g^4 + 10000)^(1/2) - 100)^(1/2))*sinh(L*((g^4 + 10000)^(1/2) + 100)^(1/2))*(L^2*((g^4 + 10000)^(1/2) - 100) - L^2*((g^4 + 10000)^(1/2) + 100)) - 2*L^2*(cos(L*((g^4 + 10000)^(1/2) - 100)^(1/2))*cosh(L*((g^4 + 10000)^(1/2) + 100)^(1/2)) - 1)*((g^4 + 10000)^(1/2) - 100)^(1/2)*((g^4 + 10000)^(1/2) + 100)^(1/2) == 0
It's the characteristic equation of a 4x4 matrix. The infinite sollutions of this equation represent the dimensionless eigenfrequencies g(L) of an oscillating, clamped clamped beam with axial load.
My aim is to find the first 4 (lowest) eigenfrequencies depending on the length of the beam.
I've tried everything I can think of I am a beginner and I find it really difficult.
fsolve requires a guess, and I can't predict the periodicity of this function
I tried to get an analytical sollution with
s=solve(eqn,g,'return conditions',true)
Please someone enlighten me.
Thanks in advance.
4 个评论
Walter Roberson
2019-1-5
When L is an integer, there appears to be L+1 positive roots for g^4 (counting 0). The largest root can be on the order of 14000. The slopes are numerically relatively steep, making it difficult to find numeric solutions for given L.
Jan
2019-1-16
@solo gouda: The nature of this forum is to share questions and solutions. After an answer was given by a member of the community, it is impolite to remove essential parts of the question, because the thread becomes meaningless afterwards.
回答(1 个)
David Goodmanson
2019-1-6
编辑:David Goodmanson
2019-1-7
Hi solo,
In situations like this it never hurts to plot out the function to see the zero crossings. I don't think people do that enough. Plotting gives you an idea of the regions to specify for the fzero or fsolve functions.
The amplitude of the function y (your char) rapidly increases with g. Since you are only trying to find the zero crossings, it helps to almost-normalize the function by dividing by cosh(bl) which is rapidly increasing in the same manner. That works since cosh is never zero for real argument.
L = 5;
g = 0:.001:14;
al=(((10^4+g.^4).^0.5 -10^2).^0.5)*L;
bl=(((10^4+g.^4).^0.5 +10^2).^0.5)*L;
y = 2*al.*bl.*(1-cos(al).*cosh(bl))+(bl.^2-al.^2).*sin(al).*sinh(bl);
y = y./cosh(bl);
figure(1)
plot(g,y)
I believe that there are an unlimited number of roots for most positive values of L, probably all of them. For L=5 there are 17 zero crossings for g<14, not counting the one at g=0. As you would expect, as L decreases the frequencies of the roots increase and vice versa.
另请参阅
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!